public void shutdown() { if ( null != jmxName ) { try { ManagementFactory.getPlatformMBeanServer().unregisterMBean( jmxName ); } catch ( final Exception e ) { Logs.warn( "Problem unregistering LocksMBean for: <>", this, e ); } } }
AbstractResourceLockFactory( final boolean jmxEnabled ) { if ( jmxEnabled ) { try { final MBeanServer server = ManagementFactory.getPlatformMBeanServer(); final String hash = String.format( "0x%08X", new Integer( System.identityHashCode( this ) ) ); jmxName = ObjectName.getInstance( JMX_DOMAIN, properties( "type", category(), "hash", hash ) ); server.registerMBean( new LocalResourceLockMBean( this ), jmxName ); } catch ( final Exception e ) { Logs.warn( "Problem registering LocksMBean for: <>", this, e ); } } }
@Override public List<String> call() throws Exception { final MBeanServer server = ManagementFactory.getPlatformMBeanServer(); // assumes methods have string-only signatures final String[] sig = new String[args.length]; Arrays.fill( sig, String.class.getName() ); final List<String> results = new ArrayList<String>(); for ( final ObjectName mBean : server.queryNames( jmxQuery, null ) ) { try { // Invoke across all matching MBeans in this Hazelcast instance final Object result = server.invoke( mBean, method, args, sig ); if ( result instanceof String[] ) { Collections.addAll( results, (String[]) result ); } } catch ( final Exception e ) { Logs.warn( "Problem invoking JMX method: \"{}\"", method, e ); } } return qualifyResults( results ); }
@Inject HazelcastResourceLockFactory( @Nullable @Named( "hazelcast.config" ) final File configFile ) { super( true ); instance = Hazelcast.newHazelcastInstance( getHazelcastConfig( configFile ) ); try { final MBeanServer server = ManagementFactory.getPlatformMBeanServer(); jmxMaster = ObjectName.getInstance( JMX_DOMAIN, "type", category() ); jmxQuery = ObjectName.getInstance( JMX_DOMAIN, properties( "type", category(), "hash", "*" ) ); if ( !server.isRegistered( jmxMaster ) ) { server.registerMBean( new HazelcastResourceLockMBean( instance, jmxQuery ), jmxMaster ); } } catch ( final Exception e ) { Logs.warn( "Problem registering master LocksMBean for: <>", this, e ); } }
public Object addingBundle( final Bundle bundle, final BundleEvent event ) { if ( CONTAINER_SYMBOLIC_NAME.equals( bundle.getSymbolicName() ) ) { return null; // this is our container, ignore it to avoid circularity errors } if ( needsScanning( bundle ) && getBundleInjectorService( bundle ) == null ) { try { new BundleInjector( bundle ); } catch ( final RuntimeException e ) { Logs.warn( "Problem starting: {}", bundle, e ); } } return null; }
/** * Distributes the given JMX invocation across the Hazelcast cluster. * * @param method JMX method * @param args JMX arguments * @return Aggregated results */ public String[] multiInvoke( final String method, final String... args ) { final HazelcastMBeansInvoker invoker = new HazelcastMBeansInvoker( jmxQuery, method, args ); final MultiTask<List<String>> task = new MultiTask<List<String>>( invoker, filterMembers( method, args ) ); final Set<String> results = new HashSet<String>(); try { instance.getExecutorService().execute( task ); for ( final List<String> result : task.get() ) { results.addAll( result ); } } catch ( final Exception e ) { Logs.warn( "Problem executing cluster MultiTask for: \"{}\"", method, e ); } return results.toArray( new String[results.size()] ); }
Logs.warn( "Problem unregistering master LocksMBean for: <>", this, e );
Logs.warn( "Problem filtering cluster members for: \"{}\"", method, e );
public final T get() { try { // load class and bootstrap injection return injector.getInstance( load() ); } catch ( final Throwable e ) { Logs.catchThrowable( e ); try { Logs.warn( "Error injecting: {}", getName(), e ); } finally { Logs.throwUnchecked( e ); } } return null; // not used }