Monitoring WebLogic Using JMX

Hi, I'm writing an application to monitor WebLogic (busy threads, heap size etc.), using JMX. I wanted to know if there's a way to create a connection and use it each time I want to get the info from the server (in order minimize the monitoring overhead on performance), or should I create a new connection each time?
Thanks,
Y.

Hi,
Thanks for answering.
So if I understand correctly, I need to get the MBeanHome once:
home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
and then to retrieve each time the MBean that I need:
home.getMBeansByType("JVMRuntime");
Is that correct?
Thanks!

Similar Messages

  • Monitoring WebLogic Using JMX - Security issue

    Hi I'm trying to run the following code, which try to connect to 2 domain and retrieve their names. When I try to connect to each domain separately, everything works fine. When I try to connect to both domain I get a security exception:
    MBeanHome home1 = null;
    MBeanHome home2 = null;
    try { 
         Environment env = new Environment();
         env.setProviderUrl(url1);
         env.setSecurityPrincipal("weblogic");
         env.setSecurityCredentials("weblogic");
         Context ctx = env.getInitialContext();
    //getting the local MBeanHome
         home1 = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
         } catch (Exception e) {
         System.out.println("Caught exception"+e);          }
         try { 
         Environment env = new Environment();
         env.setProviderUrl(url2);
         env.setSecurityPrincipal("weblogic");
         env.setSecurityCredentials("weblogic");
         Context ctx = env.getInitialContext();
    //getting the local MBeanHome
         home2 = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
         } catch (Exception e) {
         System.out.println("Caught exception" + e);
         System.out.println("domain1: "+home1.getDomainName());
         System.out.println("domain1: "+home2.getDomainName());
    And the exception I get is:
    java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators, IntegrationAdministrators]
         at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutboundRequest.java:108)
         at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:137)
         at weblogic.management.internal.AdminMBeanHomeImpl_814_WLStub.getDomainName(Unknown Source)
         at com.jacada.weblogic.WLDomainMonitor.main(WLDomainMonitor.java:200)
    Caused by: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators, IntegrationAdministrators]
         at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:697)
         at weblogic.rjvm.MsgAbbrevInputStream.getSubject(MsgAbbrevInputStream.java:190)
         at weblogic.rmi.internal.BasicServerRef.acceptRequest(BasicServerRef.java:827)
         at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:300)
         at weblogic.rjvm.RJVMImpl.dispatchRequest(RJVMImpl.java:1023)
         at weblogic.rjvm.RJVMImpl.dispatch(RJVMImpl.java:943)
         at weblogic.rjvm.ConnectionManagerServer.handleRJVM(ConnectionManagerServer.java:225)
         at weblogic.rjvm.ConnectionManager.dispatch(ConnectionManager.java:796)
         at weblogic.rjvm.t3.T3JVMConnection.dispatch(T3JVMConnection.java:760)
         at weblogic.socket.NTSocketMuxer.processSockets(NTSocketMuxer.java:105)
         at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
    Exception in thread "main"
    Thanks!

    try enabling the trust between the weblogic server domains.
    http://e-docs.bea.com/wls/docs81/secmanage/domain.html#1173731
    If you want two WebLogic Server domains to interoperate, perform the following procedure in both domains:
    Expand the Domains node (for example, Examples).
    Click the View Domain-Wide Security Settings link on the Domain-->General page.
    Select the Security Configuration-->Advanced tab.
    Uncheck the Enable Generated Credential attribute.
    Enter a password for the domain in the Credential text field. Choose the password carefully. BEA Systems recommends using a combination of upper and lower case letters and numbers.
    Confirm the password by entering it in the Confirm Credential text field.
    Click Apply
    Sowjanya

  • How to print/list all the groups/users present in Weblogic using Java code

    Hi,
    Weblogic version : 11.1.1.5
    How to print/list all the groups/users present in Weblogic using Java code
    I want to make a remote connection to Weblogic server and print all the users/groups present in it.
    I have gone through the below mentioned site, but I cannot use the same approach since most of the API' are deprecated for example "weblogic.management.MBeanHome;"
    http://weblogic-wonders.com/weblogic/2010/11/10/list-users-and-groups-in-weblogic-using-jmx/
    Thanks in advance,
    Edited by: 984107 on 05-Feb-2013 05:26
    Edited by: 984107 on 05-Feb-2013 22:59

    see this http://www.techpaste.com/2012/06/managing-user-groups-wlst-scripts-weblogic/
    Hope this helps.

  • Best practice to monitor 10gR3 OSB performance using JMX API?

    Hi guys,
    I need some advice on the best practice to monitor 10gR3 OSB performance using JMX API.
    Jus to show I have done my home work, I managed to get the JMX sample code from
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/jmx_monitoring/example.html#wp1109828
    working.
    The following is the list of options I am think about:
    * Set up: I have a cluster of one 1 admin server with 2 managed servers, which managed server runs an instance of OSB
    * What I try to achieve:
    - use JMX API to collect OSB stats data periodically as in sample code above then save data as a record to a
         database table
    Options/ideas:
    1. Simplest approach: Run the modified version of JMX sample on the Admin Server to save stats data to database
    regularly. I can't see problems with this one ...
    2. Use WLI to schedule the Task of collecting stats data regularly. May be overkill if option 1 above is good for production
    3. Deploy a simple web app on Admin Server, say a simple servlet that displays a simple page to start/stop and configure
    data collection interval for the timer
    What approach would you experts recommend?
    BTW, the caveats os using JMX in http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/jmx_monitoring/concepts.html#wp1095673
    says
         Oracle strongly discourages using this API in a concurrent manner with more than one thread or process. This is because a reset performed in
         one thread or process is not visible to another threads or processes. This caveat also applies to resets performed from the Monitoring Dashboard of
         the Oracle Service Bus Console, as such resets are not visible to this API.
    Under what scenario would I be breaking this rule? I am a little worried about its statement
         discourages using this API in a concurrent manner with more than one thread or process
    Thanks in advance,
    Sam

    Hi Manoj,
    Thanks for getting back. I am afraid configuring aggregation interval from Dashboard doesn't solve problem as I need to collect stats data of endpoint URI or in hourly or daily basis, then output to CSV files so line graphs can be drawn for chosen applications.
    Just for those who may be interested. It's not possible to use SQL to query database tables to extract OSB stats for a specified time period, say 9am - 5pm. I raised a support case already and the response I got back is 'No'.
    That means using JMX API will be the way to go :)
    Has anyone actually done this kind of OSB stats report and care to give some pointers?
    I am thinking of using 7 or 1 days as the aggregation interval set in Dashboard of OSB admin console then collects stats data using JMX(as described in previous link) hourly using WebLogic Server JMX Timer Service as described in
    http://download.oracle.com/docs/cd/E12840_01/wls/docs103/jmxinst/timer.html instead of Java's Timer class.
    Not sure if this is the best practice.
    Thanks,
    Regards,
    Sam

  • How to get application's state on weblogic server using jmx.

    I want to get application state using JMX, I am able to get application list, name but not able to find its state. Some code snippet mentioned below. Please let me know if I can use some other MBean
    Thanks in advance..
    static {
    try {
    service = new ObjectName("com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean");
    }catch (MalformedObjectNameException e) {
    throw new AssertionError(e.getMessage());
    * Initialize connection to the Domain Runtime MBean Server
    public static void initConnection(String hostname, String portString, String username, String password) throws IOException, MalformedURLException
    String protocol = "t3";
    int port = Integer.parseInt(portString);
    String jndiroot = "/jndi/";
    String mserver = "weblogic.management.mbeanservers.domainruntime";
    JMXServiceURL serviceURL= new JMXServiceURL(protocol,hostname, port, jndiroot+mserver);
    // JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, portString, jndiroot , mserver);
    Hashtable h = new Hashtable();
    h.put(Context.SECURITY_PRINCIPAL, username);
    h.put(Context.SECURITY_CREDENTIALS, password);
    h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,
    "weblogic.management.remote");
    connector = JMXConnectorFactory.connect(serviceURL, h);
    connection = connector.getMBeanServerConnection();
    * Get an array of ServerRuntimeMBeans
    public static ObjectName[] getServerRuntimes() throws Exception {
    return (ObjectName[]) connection.getAttribute(service,
    "ServerRuntimes");
    * Get an array of WebAppComponentRuntimeMBeans
    public void getApplicationData() throws Exception {
    ObjectName[] serverRT = getServerRuntimes();
    int length = (int) serverRT.length;
    for (int i = 0; i < length; i++) {
    ObjectName[] appRT =
    (ObjectName[]) connection.getAttribute(serverRT,
    "ApplicationRuntimes");
    int appLength = (int) appRT.length;
    for (int x = 0; x < appLength; x++) {
    System.out.println("Application name: " +
    (String)connection.getAttribute(appRT[x], "Name")+"Application Status"+(String)connection.getAttribute(appRT[x], "State"));
    public static void main(String[] args) throws Exception {
    String hostname = "*****.us.oracle.com";
    String portString = "*****";
    String username = "***";
    String password = "****";
    JMXUtil s = new JMXUtil();
    initConnection(hostname, portString, username, password);
    s.getApplicationData();
    connector.close();

    register at elicense.bea.com and ask there.
    but, a license is a license, as long as the ipaddr is not restricted.
    Wayne
    Bora wrote:
    I downloaded an Evaluation copy from BEA but it expires in 30 days. The place I
    work has licenses for HPUX but I need to have a copy on my laptop for development
    & test.
    Thanks for help!
    Sincerely
    Bora

  • Weblogic.security.service.NotYetInitializedException using JMX

    Hi there,
    I'm trying to use JMX to add a notification listener to listen for attribute changes to a WLS 8.1 MBean. My code when setting up the listener is as so:
    String url = "t3://localhost:7001";
    String serverName = "Server1";
    String userName = "weblogic";
    String password = "weblogic";
    MBeanHome home = null;
    RemoteMBeanServer rmbs = null;
    Environment env = new Environment();
    env.setProviderUrl(url);
    env.setSecurityPrincipal(userName);
    env.setSecurityCredentials(password);
    try {
         Context ctx = env.getInitialContext();
         home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    } catch (NamingException e) {
         e.printStackTrace();
    rmbs = home.getMBeanServer();
    WLListener listener = new WLListener();
    WebLogicObjectName mbeanName = new WebLogicObjectName("examplesServer", "Server", "examples");
    rmbs.addNotificationListener(mbeanName, listener, null, null);This seems to work fine, I do not get any error messages. As you can see I'm using the server started through the examples, and I'm adding a notification listener to the ServerMBean.
    My notification listener code is as so:
    public void handleNotification(Notification notification, Object arg1) {
         AttributeChangeNotification changedAttrib = (AttributeChangeNotification) notification;
         try {
              System.out.println("Changed value from: " + changedAttrib.getOldValue() + " to " + changedAttrib.getNewValue());
         } catch (Exception ex) {
              ex.printStackTrace();
    public boolean isNotificationEnabled(Notification arg0) {
         return true;
    }Only when a notification happens and I call getOldValue() I get:
    weblogic.security.service.NotYetInitializedException: [Security:090392]SecurityServiceManager not yet initialized.
         at weblogic.security.service.SecurityServiceManagerDelegateImpl.getSecurityService(SecurityServiceManagerDelegateImpl.java:156)
         at weblogic.security.service.SecurityServiceManager.getSecurityService(SecurityServiceManager.java:175)
         at weblogic.management.internal.SecurityHelper.getRoleManager(SecurityHelper.java:402)
         at weblogic.management.internal.SecurityHelper.access$100(SecurityHelper.java:54)
         at weblogic.management.internal.SecurityHelper$IsAccessAllowedPrivilegeAction.run(SecurityHelper.java:493)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
         at weblogic.management.internal.SecurityHelper.isAccessAllowed(SecurityHelper.java:393)
         at weblogic.management.internal.AttributeChangeNotification.getOldValue(AttributeChangeNotification.java:136)
         at com.xxxx.password.PasswordBme$WLListener.handleNotification(PasswordBme.java:76)
         at com.xxxx.password.PasswordBme$WLListener_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
         at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)Is there a step I'm missing out? The entry for this message in the documentation suggests calling BEA support.

    Hi there,
    I'm trying to use JMX to add a notification listener to listen for attribute changes to a WLS 8.1 MBean. My code when setting up the listener is as so:
    String url = "t3://localhost:7001";
    String serverName = "Server1";
    String userName = "weblogic";
    String password = "weblogic";
    MBeanHome home = null;
    RemoteMBeanServer rmbs = null;
    Environment env = new Environment();
    env.setProviderUrl(url);
    env.setSecurityPrincipal(userName);
    env.setSecurityCredentials(password);
    try {
         Context ctx = env.getInitialContext();
         home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    } catch (NamingException e) {
         e.printStackTrace();
    rmbs = home.getMBeanServer();
    WLListener listener = new WLListener();
    WebLogicObjectName mbeanName = new WebLogicObjectName("examplesServer", "Server", "examples");
    rmbs.addNotificationListener(mbeanName, listener, null, null);This seems to work fine, I do not get any error messages. As you can see I'm using the server started through the examples, and I'm adding a notification listener to the ServerMBean.
    My notification listener code is as so:
    public void handleNotification(Notification notification, Object arg1) {
         AttributeChangeNotification changedAttrib = (AttributeChangeNotification) notification;
         try {
              System.out.println("Changed value from: " + changedAttrib.getOldValue() + " to " + changedAttrib.getNewValue());
         } catch (Exception ex) {
              ex.printStackTrace();
    public boolean isNotificationEnabled(Notification arg0) {
         return true;
    }Only when a notification happens and I call getOldValue() I get:
    weblogic.security.service.NotYetInitializedException: [Security:090392]SecurityServiceManager not yet initialized.
         at weblogic.security.service.SecurityServiceManagerDelegateImpl.getSecurityService(SecurityServiceManagerDelegateImpl.java:156)
         at weblogic.security.service.SecurityServiceManager.getSecurityService(SecurityServiceManager.java:175)
         at weblogic.management.internal.SecurityHelper.getRoleManager(SecurityHelper.java:402)
         at weblogic.management.internal.SecurityHelper.access$100(SecurityHelper.java:54)
         at weblogic.management.internal.SecurityHelper$IsAccessAllowedPrivilegeAction.run(SecurityHelper.java:493)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
         at weblogic.management.internal.SecurityHelper.isAccessAllowed(SecurityHelper.java:393)
         at weblogic.management.internal.AttributeChangeNotification.getOldValue(AttributeChangeNotification.java:136)
         at com.xxxx.password.PasswordBme$WLListener.handleNotification(PasswordBme.java:76)
         at com.xxxx.password.PasswordBme$WLListener_WLSkel.invoke(Unknown Source)
         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
         at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)Is there a step I'm missing out? The entry for this message in the documentation suggests calling BEA support.

  • Using JMX to database monitoring

    Hello, I'm a software developer, and I want to use JMX to database monitoring.
    I did sth to see in jconsole some data from our database, but Ive got problem to
    refresh it. I mean when jconsole is running and somebody makes changes in DB
    how can I see it on monitor ... ?? Something like dynamic MBeans ??
    second question - is it possible to use MXBean in java 1.5 ??
    thanks for answers
    PS. we are using Java 5 unfortunetelly

    oh I should say that:
    -I'm using jconsole to monitoring jobs i DB;
    -every job has its own MBean;
    -of course if some changes in already defined jobs occure - its no problem;
    Problem is when somebody create/delete jobs ... how can I using refresh button on jconsole get information about new job ?

  • Weblogic database resources using JMX

    Does anyone have an idea on how to get user defined Datasource information from Weblogic server using JMX?
    I have tried with different ObjectNames but none of them seems to work
    ObjectName service = new ObjectName("com.bea:Name=EditService,Type=weblogic.management.mbeanservers.edit.EditServiceMBean");
    and
    connection.getAttribute(service, "JDBCSystemResources");
    Thank you very much for your help.

    I would encourage you to use WLST because it's much easier IMHO. What is your use case?
    But if you must use java, this should get you started:
    package foo;
    import java.util.Hashtable;
    import javax.management.MBeanAttributeInfo;
    import javax.management.MBeanInfo;
    import javax.management.MBeanServerConnection;
    import javax.management.ObjectName;
    import javax.management.remote.JMXConnector;
    import javax.management.remote.JMXConnectorFactory;
    import javax.management.remote.JMXServiceURL;
    public class TestJMX {
         public static void main(String[] args) throws Exception {
              JMXConnector jmxCon = null;
              try {
                   JMXServiceURL serviceUrl = new JMXServiceURL(
                             "service:jmx:t3://localhost:7011/jndi/weblogic.management.mbeanservers.edit");
                   System.out.println("Connecting to: " + serviceUrl);
                   Hashtable env = new Hashtable();
                   env.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,
                             "weblogic.management.remote");
                   env.put(javax.naming.Context.SECURITY_PRINCIPAL, "weblogic");
                   env.put(javax.naming.Context.SECURITY_CREDENTIALS, "welcome1");
                   jmxCon = JMXConnectorFactory.newJMXConnector(serviceUrl, env);
                   jmxCon.connect();
                   MBeanServerConnection con = jmxCon.getMBeanServerConnection();
    //               Set<ObjectName> mbeans = con.queryNames(null, null);
    //               for (ObjectName mbeanName : mbeans) {
    //                    System.out.println(mbeanName);
                   System.out.println("***** JDBC System Resources ********" );
                   ObjectName domain = new ObjectName("com.bea:Name=medrec,Type=Domain");
                   ObjectName[] objNames = (ObjectName[]) con.getAttribute(domain, "JDBCSystemResources");
                   System.out.println("JDBCSystemResources");
                   for( ObjectName objName : objNames )
                        System.out.println( objName );
                        MBeanInfo info = con.getMBeanInfo(objName);
                        MBeanAttributeInfo[] attributes = info.getAttributes();
                        for( MBeanAttributeInfo attrInfo : attributes )
                             String name = attrInfo.getName();
                             System.out.println( name + " " + attrInfo.getType() + " " + con.getAttribute(objName, name) );
              } finally {
                   if (jmxCon != null)
                        jmxCon.close();
    }For me that prints:
    <pre>
    Connecting to: service:jmx:t3://localhost:7011/jndi/weblogic.management.mbeanservers.edit
    ***** JDBC System Resources ********
    JDBCSystemResources
    com.bea:Name=MedRecGlobalDataSourceXA,Type=JDBCSystemResource
    Parent javax.management.ObjectName com.bea:Name=medrec,Type=Domain
    Resource javax.management.ObjectName com.bea:Name=MedRecGlobalDataSourceXA,Type=weblogic.j2ee.descriptor.wl.JDBCDataSourceBean,Parent=[medrec]/JDBCSystemResources[MedRecGlobalDataSourceXA],Path=JDBCResource[MedRecGlobalDataSourceXA]
    Type java.lang.String JDBCSystemResource
    CompatibilityName java.lang.String null
    ModuleType java.lang.String null
    SourcePath java.lang.String ./config/jdbc/MedRec-jdbc.xml
    JDBCResource javax.management.ObjectName com.bea:Name=MedRecGlobalDataSourceXA,Type=weblogic.j2ee.descriptor.wl.JDBCDataSourceBean,Parent=[medrec]/JDBCSystemResources[MedRecGlobalDataSourceXA],Path=JDBCResource[MedRecGlobalDataSourceXA]
    DescriptorFileName java.lang.String jdbc/MedRec-jdbc.xml
    Notes java.lang.String null
    Name java.lang.String MedRecGlobalDataSourceXA
    SubDeployments [Ljavax.management.ObjectName; [Ljavax.management.ObjectName;@3219762f
    DeploymentPrincipalName java.lang.String null
    Targets [Ljavax.management.ObjectName; [Ljavax.management.ObjectName;@178aab40
    DeploymentOrder java.lang.Integer 100
    </pre>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Programming Weblogic with jmx without using weblogic api?

    Hi,
    I want to know if it is possible to program weblogic management service without
    using weblogic api but just rely on standard JMX interface and methods.
    Currently, I am relying on weblogic api weblogic.jndi.Environment and weblogic.management.MBeanHome
    interface to get the context and access the MBean Server subsystem. Can I find
    the equivalent using jmx?
    My code is as follows:
    Environment env = new Environment();
    env.setProviderUrl(url);
    env.setSecurityPrincipal(username);
    env.setSecurityCredentials(password);
    Context ctx = env.getInitialContext();
    MBeanHome home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    String domain = home.getDomainName();
    homeServer = home.getMBeanServer();
    Thank you.

    Hi Ryan,
    I have looked through the documentation.
    It told me that I need to use weblogic.management.MBeanHome interface to get MBeanHome
    and from there then I can only use jmx interface.
    I presume it is not possible not to use weblogic.jar if I want to establish the
    initial connection with Weblogic server?
    Thanks.
    ryan upton <[email protected]> wrote:
    YongLeong wrote:
    Hi,
    I want to know if it is possible to program weblogic management servicewithout
    using weblogic api but just rely on standard JMX interface and methods.
    Currently, I am relying on weblogic api weblogic.jndi.Environment andweblogic.management.MBeanHome
    interface to get the context and access the MBean Server subsystem.Can I find
    the equivalent using jmx?
    My code is as follows:
    Environment env = new Environment();
    env.setProviderUrl(url);
    env.setSecurityPrincipal(username);
    env.setSecurityCredentials(password);
    Context ctx = env.getInitialContext();
    MBeanHome home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);
    String domain = home.getDomainName();
    homeServer = home.getMBeanServer();
    Thank you.I think you'll find your answer here:
    http://edocs.bea.com/wls/docs81/jmx/index.html
    HTH
    ~Ryan

  • Monitor weblogic cluster server performance

    I am using "System Monitor" got from http://dev2dev.bea.com/utilitiestools/monitoring.html to monitor my weblogic server performance. For single server, it is working well.
    However I can't use it to monitor the cluster server performance. For example:
    server 1 and server 2 have clustered weblogic server - APPS listerning on port 8888. On server 1, I have admin server running on server 1 - ADMIN_SVR1 listerning on port 232.
    I can dump the admin server Mbean information as:
    $java com.iternum.jmx.monitor.SystemMonitor -url t3://localhost:232 -user admin -password xxxxx -mBeanType ExecuteQueueRuntime -of performance.txt
    However I can't dump the cluster server performance data as following:
    $java com.iternum.jmx.monitor.SystemMonitor -url t3://localhost:8888 -user admin -password xxxxxx -mBeanType ExecuteQueueRuntime -of performance.txt
    Did I make any mistake? Do you have better tool to monitor weblogic performance?
    Thanks in advance,
    carl

    how to attach GC file?

  • Using JMX to get rollback statistics

    Has anyone used MBean monitoring to get WebLogic transaction rollback statistics? Is there any example code for this out there?
    thanks,
    Jake Vogelaar

    Hello Adam,
    Adam Lunger wrote:
    I have registered a notification listener with a JMSDestinationRuntimeMBean, but I don't get any notifications.
    What notifications are sent from the JMSDestinationRuntimeMBean? All kinds of JMX Notifications like AttributeChangeNotifications.
    >
    Specifically I want to receive notifications when the MesssagesCurrentCount changes. Can I use JMX to get these notifications? Any help is appreciated.Yes, you can use JMX to get notifications when this attribute changes.
    Check out
    http://e-docs.bea.com/wls/docs81/jmx/notifications.html#1118345
    Thanks,
    -satya

  • How to read the messages in the JMS Queue using JMX

    Hi,
              I want to read messages in the JMS queue using JMX. I was able to read using QueueBrowser but want to modify priority of the messages using JMX.
              I tried to use JMSDestinationRuntimeMBean but it does not allow us to read messages unless we pass the message Id. Is there any way that I can get all the messages in the queue.
              I am using Weblogic 8.1 SP4
              Can someone please help me in this regard.
              Thanks,
              Kiran.
              Edited by KGudipati at 10/22/2007 1:22 AM

    Hi,
    As far as i know, JMS Object Messages is not supported by XI JMS adapter.
    you need to have the JMS provider to transform the message to bytes messages.
    (Refer to SAP note 856346)

  • Using JMX to get status information about NetWeaver cluster

    Hi everybody,
    We are trying to use JMX to get some status information about NetWeaver cluster.
    For example, using the MBean with the name u201Ccom.sap.default:name=EL1,j2eeType=SAP_J2EEClusteru201D we can obtain the list of all instances running in cluster. Here an instance is a u201CJava instanceu201D in the NetWeaver terminology.
    The method u201CgetInstanceNodeIDsu201D provides us with a list of all nodes of an instance.
    Concretely, calling this method for a cluster running on one machine with two java processes, we get the following list of node Ids: u201C0, 1476420, 1476450, 1476451u201D where the last two correspond to the two java processes.
    What are the first two node Ids from the list?
    How can the last two node Ids be identified as java processes?
    How can we obtain status information about each java process (node id) ?
    Thanks for all ideas,
    Radu

    As there seems to be a lot of interest in this subject, and since I found some form of solution, I thought I'd share it with you.
    In the es-cli interface, there is a thing called browse mode. Activate it by typing browse after logging in.
    Now you can easily browse your network and all of the managed objects. Use getattributes at the end of each branch to see the properties of objects. So far, I've indexed all of the kernel reader module, the health monitor module, the common config reader and the config reader for workgroup servers. If my employer allows, I will post results to http://tille.garrels.be/training/sunmc/ - check later this week.
    Machtelt.

  • Help needed in using JMX APIs

    Hi
    My requirement is to retrieve the JNDI Names of the JMSConnectionFactory and the JMSQueue using the Connection factory or Queue name. In short im trying out a feasibility of reading the JNDI values for queues from weblogic config.xml instead of reading them from a properties file.
    I developed a sample code using JMX APIs that will fetch the JNDI names of all the JMS destinations available for a particluar JMSServer.
    But is there any way to retrieve the JNDI names based on the queue names .. in general i will give queue name as input and i want the queue's JNDI name as output.
    My sample code is :
    import java.util.Iterator;
    import java.util.Set;
    import javax.management.ObjectName;
    import javax.management.QueryExp;
    import javax.management.Attribute;
    import javax.naming.Context;
    import weblogic.jndi.Environment;
    import weblogic.management.MBeanHome;
    import weblogic.management.RemoteMBeanServer;
    import weblogic.management.WebLogicObjectName;
    import weblogic.management.configuration.JMSQueueMBean;
    import weblogic.management.configuration.JMSServerMBean;
    import weblogic.management.configuration.JMSConnectionFactoryMBean;
    import weblogic.management.configuration.JMSDestinationMBean;
    import weblogic.management.runtime.JMSServerRuntimeMBean;
    import weblogic.management.configuration.JMSDestinationMBean;
    public class JMSAddQueue {// The name of the WebLogic domain, please change this to match the //// name of your installation specific domain name                  
    private static String weblogicDomain = "conciergetestdomain";// The name of the WebLogic server, please change this to match the //// name of your installation specific server name
    public static void main(String[] args) {
         try
              Environment env = new Environment(); 
              env.setProviderUrl("t3://localhost:7001");  
              env.setSecurityPrincipal("system");  
              env.setSecurityCredentials("weblogic");  
              Context ctx = env.getInitialContext();  
              MBeanHome home = (MBeanHome) ctx.lookup(MBeanHome.ADMIN_JNDI_NAME);  
              ctx.close();  
      JMSServerMBean cf = (JMSServerMBean)home.findOrCreateAdminMBean("TESTSERVER","JMSServer", weblogicDomain);
    JMSDestinationMBean[] jdb = cf.getDestinations();
    System.out.println("** The JNDI name is : "+jdb[0].getJNDIName());
    catch (Exception e) {
    e.printStackTrace();
    }Is there any way to retrieve the JNDI names using the queue names ?
    Thanks
    Arun B

    I will send up an alert for you, Colin. Even though I use iTunes for Mac, troubleshooting it isn't my forté.

  • Using JMX and MBeans

    I've been experimenting with Java instrumentation with MBeans.
    I created a small app to try out some of the JMX features. The app has a class that I would like to monitor with MBeans. So I created to interfaces to function as MBeans and then had the class in my app implement both interfaces.
    I then wrote a class with only a main() method to instantiate my class and call the methods it implemented from my MBean interface. In the main method I provided the code to get an MBeanServer object and then use that to register my class that implemented the MBean interfaces. My intention was to try this out, but before I did I commented out the code needed to register the class with the MBean server. I did this because I assumed the implemented interface methods would be available for monitoring without registering and it made me think if I can monitor the instrumented class like this why would I need the MBean server.
    So what is the purpose of the JMX framework and MBeans if I can instrument any class as described above?
    Is it necessary to register only to be able to monitor from outside the JMV where the instrumented class is running?
    Or are there other advantages\features\reasons for registering with the MBean server?
    Thanks

    "MS" <[email protected]> wrote:
    >
    Hello All,
    I am looking for a java program that can create JDBC connection pool
    and datasource
    using JMX/Mbeans of WLS 7.0.2.
    Can somebody help?
    Thanks in advance.
    rgds
    MS

Maybe you are looking for

  • How do you determine early from late 2006 MacBooks?

    We need to replace the battery in a 2006 Macbook but don't know whether it's an early 2006 or late 2006. How do we determine this (for this purpose as well as any other purpose?)

  • OIM 10G OID user account / group membership reconciliation

    Hello I have an OID environment that is used for OAM access to applications within the environment. I need to be able to reconcile users from OID into OIM along with their group membership so that roles for users are maintained and updated. I have OR

  • Some keys faulty after spillage

    Hi. Spilled water on to my Apple Wireless Keyboard recently. It's nearly working again, save for a couple of particular problems. For a day or two, one keystroke caused multiple characters to appear - presumably because of water still being in the ke

  • Has anyone found a way to convert the Canon T4i raw files using Adobe DNG?

    I just purchased the Canon T4i and us PE9. PE9 doesn't support the new raw format. I tried using Adobe DNG converter as Adobe recommended. That didn't worl either. Has anyone managed to convert these raw files so that PE9 will recognize them?

  • No Overlap Container Component

    I want to write a component that will allow children to be added, but will prevent them from overlapping. I have played around with a few collision detection type things, but I haven't been successful. I'm posting this to see if I can get some feedba