JMS Server and MySQL Persistent Store

          I set up a JDBC connection pool in Weblogic 8.1 with MySQL dbms. When I tried to
          create a JMS server and use the connection pool as the Persistent Store, then
          try to target the JMS to a managed server. I got the following error, any idea
          what the problem is?
          weblogic.management.DistributedManagementException: Distributed Management [1
          exceptions]
          JMS JDBC store, connection pool = , prefix = : unsupported DBMS
               at weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBeans(ConfigurationMBeanImpl.java:1133)
               at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:462)
               at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
               at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
               at weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerImpl.java:765)
               at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:946)
               at weblogic.management.internal.MBeanProxy.invokeForCachingStub(MBeanProxy.java:481)
               at weblogic.management.configuration.ServerMBean_Stub.addDeployment(ServerMBean_Stub.java:7929)
               at weblogic.management.internal.DynamicMBeanImpl.unprotectedUpdateDeployments(DynamicMBeanImpl.java:1795)
               at weblogic.management.internal.DynamicMBeanImpl.access$100(DynamicMBeanImpl.java:95)
               at weblogic.management.internal.DynamicMBeanImpl$2.run(DynamicMBeanImpl.java:1708)
               at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
               at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
               at weblogic.management.internal.DynamicMBeanImpl.updateDeployments(DynamicMBeanImpl.java:1704)
               at weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBeanImpl.java:1128)
               at weblogic.management.internal.ConfigurationMBeanImpl.setAttribute(ConfigurationMBeanImpl.java:311)
               at com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.java:1358)
               at com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.java:1333)
               at weblogic.management.internal.RemoteMBeanServerImpl.setAttribute(RemoteMBeanServerImpl.java:367)
               at weblogic.management.internal.MBeanProxy.setAttribute(MBeanProxy.java:741)
               at weblogic.management.internal.MBeanProxy.invokeForCachingStub(MBeanProxy.java:475)
               at weblogic.management.configuration.JMSServerMBean_Stub.setTargets(JMSServerMBean_Stub.java:1247)
               at weblogic.management.console.webapp._domain.__jmsserver$ServerAndMigratableTargetAttribute.doSet(__jmsserver.java:109)
               at weblogic.management.console.actions.mbean.DoEditMBeanAction.perform(DoEditMBeanAction.java:256)
               at weblogic.management.console.actions.internal.ActionServlet.doAction(ActionServlet.java:173)
               at weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServlet.java:85)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
               at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
               at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
               at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
               at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
               at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
               at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
               at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
               at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
               at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
               at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
          java.io.IOException: JMS JDBC store, connection pool = , prefix = : unsupported
          DBMS
               at weblogic.jms.store.JDBCIOStream.throwIOException(JDBCIOStream.java:359)
               at weblogic.jms.store.JDBCIOStream.rebuildTables(JDBCIOStream.java:1613)
               at weblogic.jms.store.JDBCIOStream.open(JDBCIOStream.java:426)
               at weblogic.jms.store.JMSStore.open(JMSStore.java:224)
               at weblogic.jms.backend.BEStore.open(BEStore.java:262)
               at weblogic.jms.backend.BEStore.start(BEStore.java:151)
               at weblogic.jms.backend.BackEnd.openStores(BackEnd.java:1171)
               at weblogic.jms.backend.BackEnd.resume(BackEnd.java:1287)
               at weblogic.jms.JMSService.addJMSServer(JMSService.java:2167)
               at weblogic.jms.JMSService.addDeployment(JMSService.java:1938)
               at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:330)
               at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:201)
               at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
               at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
               at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
               at java.lang.reflect.Method.invoke(Method.java:324)
               at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:747)
               at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:726)
               at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:458)
               at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
               at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
               at weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerImpl.java:765)
               at weblogic.management.internal.RemoteMBeanServerImpl_WLSkel.invoke(Unknown Source)
               at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:466)
               at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:409)
               at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
               at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
               at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:404)
               at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
               at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
               at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
          --------------- nested within: ------------------
          weblogic.management.console.utils.SetException: An error occurred while updating
          MigratableTarget on [Caching Stub]Proxy for dotnet:Name=CSJMSServer,Type=JMSServer
          - with nested exception:
          [weblogic.management.DistributedManagementException: Distributed Management [1
          exceptions]
          JMS JDBC store, connection pool = , prefix = : unsupported DBMS]
               at weblogic.management.console.actions.mbean.DoEditMBeanAction.perform(DoEditMBeanAction.java:311)
               at weblogic.management.console.actions.internal.ActionServlet.doAction(ActionServlet.java:173)
               at weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServlet.java:85)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
               at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
               at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
               at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
               at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
               at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
               at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
               at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
               at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
               at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
               at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
               at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
          Console Release Build8.1.1.0Server Release Build8.1.1.0Server BuildWebLogic Server
          8.1 SP1 Fri Jun 20 23:06:40 PDT 2003 271009 All Server Product VersionsWebLogic
          Server 8.1 SP1 Fri Jun 20 23:06:40 PDT 2003 271009 WebLogic XMLX Module 8.1 SP1
          Fri Jun 20 23:06:40 PDT 2003 271009 WebLogic Server 8.1 SP1 Fri Jun 20 23:06:40
          PDT 2003 271009 WebLogic Server 8.1 SP1 Fri Jun 20 23:06:40 PDT 2003 271009 WebLogic
          Portal 8.1 Thu Jul 10 20:09:22 PDT 2003 84868
          

Exactly what it says: unsupported DBMS.
          But but but...
          OK, I'll be nice (just couldn't resist).
          The next 8.1 SP will contain the DDL for MySQL, but for
          now you can run it manually. Prepend your catalog,
          schema, and prefix before JMSState and JMSStore to
          match what you configured as a prefix in your
          JMS JDBC store, and run the commands:
          CREATE TABLE JMSState (recordHandle int, recordState int,
          recordGeneration int);
          CREATE TABLE JMSStore (recordHandle int, recordState int, record longblob);
          CREATE INDEX JMSMSG_X ON JMSState (recordHandle);
          CREATE INDEX JMSMSGQ_X ON JMSStore (recordHandle);
          COMMIT;
          Note that a file store may be preferable instead
          of using a database store, there is
          likely no performance advantage to MySQL (in fact
          there is likely a significant performance penalty), and a file
          store is just as transactionally safe as a database
          store.
          Tom
          dahan wrote:
          > I set up a JDBC connection pool in Weblogic 8.1 with MySQL dbms. When I tried to
          > create a JMS server and use the connection pool as the Persistent Store, then
          > try to target the JMS to a managed server. I got the following error, any idea
          > what the problem is?
          >
          > weblogic.management.DistributedManagementException: Distributed Management [1
          > exceptions]
          > JMS JDBC store, connection pool = , prefix = : unsupported DBMS
          >      at weblogic.management.internal.ConfigurationMBeanImpl.updateConfigMBeans(ConfigurationMBeanImpl.java:1133)
          >      at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:462)
          >      at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
          >      at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
          >      at weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerImpl.java:765)
          >      at weblogic.management.internal.MBeanProxy.invoke(MBeanProxy.java:946)
          >      at weblogic.management.internal.MBeanProxy.invokeForCachingStub(MBeanProxy.java:481)
          >      at weblogic.management.configuration.ServerMBean_Stub.addDeployment(ServerMBean_Stub.java:7929)
          >      at weblogic.management.internal.DynamicMBeanImpl.unprotectedUpdateDeployments(DynamicMBeanImpl.java:1795)
          >      at weblogic.management.internal.DynamicMBeanImpl.access$100(DynamicMBeanImpl.java:95)
          >      at weblogic.management.internal.DynamicMBeanImpl$2.run(DynamicMBeanImpl.java:1708)
          >      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
          >      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
          >      at weblogic.management.internal.DynamicMBeanImpl.updateDeployments(DynamicMBeanImpl.java:1704)
          >      at weblogic.management.internal.DynamicMBeanImpl.setAttribute(DynamicMBeanImpl.java:1128)
          >      at weblogic.management.internal.ConfigurationMBeanImpl.setAttribute(ConfigurationMBeanImpl.java:311)
          >      at com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.java:1358)
          >      at com.sun.management.jmx.MBeanServerImpl.setAttribute(MBeanServerImpl.java:1333)
          >      at weblogic.management.internal.RemoteMBeanServerImpl.setAttribute(RemoteMBeanServerImpl.java:367)
          >      at weblogic.management.internal.MBeanProxy.setAttribute(MBeanProxy.java:741)
          >      at weblogic.management.internal.MBeanProxy.invokeForCachingStub(MBeanProxy.java:475)
          >      at weblogic.management.configuration.JMSServerMBean_Stub.setTargets(JMSServerMBean_Stub.java:1247)
          >      at weblogic.management.console.webapp._domain.__jmsserver$ServerAndMigratableTargetAttribute.doSet(__jmsserver.java:109)
          >      at weblogic.management.console.actions.mbean.DoEditMBeanAction.perform(DoEditMBeanAction.java:256)
          >      at weblogic.management.console.actions.internal.ActionServlet.doAction(ActionServlet.java:173)
          >      at weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServlet.java:85)
          >      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
          >      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
          >      at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
          >      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
          >      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
          >      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
          >      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
          >      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
          >      at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
          >      at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
          >      at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
          >      at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
          > java.io.IOException: JMS JDBC store, connection pool = , prefix = : unsupported
          > DBMS
          >      at weblogic.jms.store.JDBCIOStream.throwIOException(JDBCIOStream.java:359)
          >      at weblogic.jms.store.JDBCIOStream.rebuildTables(JDBCIOStream.java:1613)
          >      at weblogic.jms.store.JDBCIOStream.open(JDBCIOStream.java:426)
          >      at weblogic.jms.store.JMSStore.open(JMSStore.java:224)
          >      at weblogic.jms.backend.BEStore.open(BEStore.java:262)
          >      at weblogic.jms.backend.BEStore.start(BEStore.java:151)
          >      at weblogic.jms.backend.BackEnd.openStores(BackEnd.java:1171)
          >      at weblogic.jms.backend.BackEnd.resume(BackEnd.java:1287)
          >      at weblogic.jms.JMSService.addJMSServer(JMSService.java:2167)
          >      at weblogic.jms.JMSService.addDeployment(JMSService.java:1938)
          >      at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:330)
          >      at weblogic.management.mbeans.custom.DeploymentTarget.addDeployment(DeploymentTarget.java:201)
          >      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          >      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          >      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          >      at java.lang.reflect.Method.invoke(Method.java:324)
          >      at weblogic.management.internal.DynamicMBeanImpl.invokeLocally(DynamicMBeanImpl.java:747)
          >      at weblogic.management.internal.DynamicMBeanImpl.invoke(DynamicMBeanImpl.java:726)
          >      at weblogic.management.internal.ConfigurationMBeanImpl.invoke(ConfigurationMBeanImpl.java:458)
          >      at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1557)
          >      at com.sun.management.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:1525)
          >      at weblogic.management.internal.RemoteMBeanServerImpl.invoke(RemoteMBeanServerImpl.java:765)
          >      at weblogic.management.internal.RemoteMBeanServerImpl_WLSkel.invoke(Unknown Source)
          >      at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:466)
          >      at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:409)
          >      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:353)
          >      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
          >      at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:404)
          >      at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
          >      at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
          >      at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
          > --------------- nested within: ------------------
          > weblogic.management.console.utils.SetException: An error occurred while updating
          > MigratableTarget on [Caching Stub]Proxy for dotnet:Name=CSJMSServer,Type=JMSServer
          > - with nested exception:
          > [weblogic.management.DistributedManagementException: Distributed Management [1
          > exceptions]
          > JMS JDBC store, connection pool = , prefix = : unsupported DBMS]
          >      at weblogic.management.console.actions.mbean.DoEditMBeanAction.perform(DoEditMBeanAction.java:311)
          >      at weblogic.management.console.actions.internal.ActionServlet.doAction(ActionServlet.java:173)
          >      at weblogic.management.console.actions.internal.ActionServlet.doPost(ActionServlet.java:85)
          >      at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
          >      at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
          >      at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
          >      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
          >      at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
          >      at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6310)
          >      at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
          >      at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118)
          >      at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3622)
          >      at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2569)
          >      at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
          >      at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
          >
          >
          >
          > --------------------------------------------------------------------------------
          >
          > Console Release Build8.1.1.0Server Release Build8.1.1.0Server BuildWebLogic Server
          > 8.1 SP1 Fri Jun 20 23:06:40 PDT 2003 271009 All Server Product VersionsWebLogic
          > Server 8.1 SP1 Fri Jun 20 23:06:40 PDT 2003 271009 WebLogic XMLX Module 8.1 SP1
          > Fri Jun 20 23:06:40 PDT 2003 271009 WebLogic Server 8.1 SP1 Fri Jun 20 23:06:40
          > PDT 2003 271009 WebLogic Server 8.1 SP1 Fri Jun 20 23:06:40 PDT 2003 271009 WebLogic
          > Portal 8.1 Thu Jul 10 20:09:22 PDT 2003 84868
          >
          

Similar Messages

  • Saving a JMS Message in a Persistent Store

    Hello Friends,
    I am going to store a JMS message in a persistent store like a database and then recreate it when needed. What I will be doing is storing the JMS headers individually. Then storing all the properties and then the message body. I just wanted to confirm that with this data I would be able to recreate the entire message.

    Not sure of the answer to this (I suspect re-creating the message with exactly the same values as it started with will be a bit more tricky than you would imaging). Why don't you try creating a blank message and setting every single header / property? You'll probably get some exceptions / values being over written when you send.
    The real question is are you 100% sure you need to do this? The whole idea smells fishy. Why do you need the JMS Headers? Things would be far easier if the body of the message contained everything you needed. Why do you have to store the message in a database rather than leave it on a persistent queue?

  • What is the association between JMS Server and JMS Module in weblogic 10?

    Hi,
    I have a created a ConnectionFactory, Queue, Topic under JMS Modules in Weblogic Server 10 using admin console.
    And I have created a JMS Server and Targetted to the current running server (Admin Server).
    But when I run the Queue Sender program it is unable to LookUP the jndi which I gave for Queue.
    queue = (Queue) initialContext.lookup("jndi_queue");
    Exception:
    javax.naming.NameNotFoundException: Unable to resolve 'jndi_queue'.
    But I configured this jndi name when I create the Queue in JMS Module in Weblogic Server 10.
    How JMS Module and JMS server are associated.
    My Doubt is if i have several JMS Modules and only one JMS Server created then how does the JMS Server identifies which Queue/Topic belongs to which JMS Module????
    Please advice.
    Thanks....

    Hi,
    Once you have JMS servers configured:
    Step 1: Target the JMS configuration module to the cluster that will host the destination, or, if not using clustering, target the module to the individual WL server that will host the JMS server.
    Step 2: Configure a "subdeployment" for the module and set it to reference the exact JMS server(s) that will host the destination. If you're using a distributed desitnation, you can specify multiple JMS servers, if you're using a regular destination, only specify a single destination.
    Step 3: Create a destination resource in the module, and set its subdeployment to the subdeployment you specified in step 1 (the console calls this "advanced targeting"). As a best practice avoid the "default targeting" option for the resource - always choose subdeployment (advanced) targeting.
    For more information, reference the "best practices" chapter of the JMS configuration guide:
    http://download.oracle.com/docs/cd/E14571_01/web.1111/e13738/best_practice.htm#CACJCGHG
    I also I highly recommend the JMS chapter of the book "Professional Oracle WebLogic".
    Hope this helps,
    Tom

  • How to use weblogic api to set jms server and presistance store target?

    Hi all,
    I can do the following from the weblogic admin console..
    1) Can set jmsServer target as ejbserver to ejbserver (migratable)(Example: from ejbnode1 to ejbnode (migratable)
    2) can set persistance store target as ejbserver to ejbserver (migratble)(Example: from ejbnode1 to ejbnode (migratable)
    Now my question is, how can i use the weblogic api to set those things through the coding?
    Pl anyone answer my qn.
    Thanks in advance.
    -Amal

    The following is code which im using now,
    Here I added jmsserver's targer as "ejbnode1" ok, How can change it to "ejbnode1 (migratable)". I can do this with admin console, but im not sure to do with api.
    Help me to do this.
    private void createJMSServer(Node node, String suffix) {
              try {
                   ObjectName cfgManager = getConfigurationManager();
                   ObjectName srvr = (ObjectName) mbeanServer.invoke(
                             domainConfig, "lookupJMSServer", new Object[] { node
                                       .getName()
                                       + suffix }, new String[] { "java.lang.String" });
                   if (null == srvr) {
                        srvr = (ObjectName) mbeanServer.invoke(domainConfig,
                                  "createJMSServer",new Object[] { node.getName() + suffix },
                                  new String[] { "java.lang.String" });
                   ObjectName targetSrvr = (ObjectName) mbeanServer.invoke(domainConfig,
                             "lookupServer", new Object[] { node.getTargetNode()},
                             new String[] { "java.lang.String" });
                   mbeanServer.invoke(srvr, "addTarget",
                             new Object[] { targetSrvr },
                             new String[] { "javax.management.ObjectName" });
                   saveAndActivateChanges(cfgManager);
                   ClusterUtil.print("CL_106", "JMSClusterSetup.createJMSServer()",
                             new Object[] { node.getName() + suffix });
              } catch (Exception e) {
                   ClusterUtil.throwEx("CL_3006", "JMSClusterSetup.createJMSServer()",
                             e, new Object[] { node.getName() });
         }

  • JMS Server on a cluster stores all  msgs posted to Distributed Queue on 1 server failure

              Hi
              I have a Cluster setup with 2 managed servers srvr1 & srvr2 each running its own
              JMS server.
              Product version in use is Weblogic SP2.
              Configured a Distributed Queue and deployed it on both the JMS servers.
              Set the load-balancing to round-Robin and Server-Affinity to False on the connection
              factory.
              The producer is an external client which posts 100 messages to the Distributed
              queue.
              Consumers are MDBs pinned to the respective physical queues on the respective
              JMS servers.
              Each server has its own store.
              Once 100 messages are posted to the Distributed Queue. The messages are distributed
              to
              the 2 Physical Destinations equally i.e 50-50 each.
              While the MDBs are processing the msgs, server srvr1 is brought down at a point
              when it has consumed only 10 of its 50 msgs.
              When the srvr1 is brought up again, i am finding that the store for that JMS server
              contains the 40 unprocessed msgs in its physical queue + the msgs on the other
              queue that were unprocessed at the time this server crashed.
              When srvr1 went down, srvr2 was running and it went on to process all its 50 msgs
              completly. Why would those processed msgs show up again when srvr1 is brought
              up ?
              Please provide some input !!
              Ravi.
              

              The log message is from the distributed destination
              "forwarders". In distributed queues, these forwarders
              automatically move messages from queues without
              consumers to queues that have them (queue
              forwarders are disabled by default). In distributed topics,
              the forwarders serve
              to replicate a published message from the local
              topic member to each of the remote topic members.
              "Raviprasad Athivilli" <[email protected]> wrote:
              >
              >Tom
              >
              >I think you are right. When the server1 is brought up again, its picking
              >up all
              >the messages
              >that were written to the store.
              >
              >But as it starts processing them, i get this exception on the server2
              >that has
              >been running from the beginning.
              >
              ><Oct 10, 2003 6:20:19 PM EDT> <Error> <JMS> <040366> <JMS Distributed
              >Destination
              >member "MyQueue@JMSServer-02" in "MyQueue"
              >unable to accept connection from remote member "MyQueue@JMSServer-01"
              >due to exception
              >weblogic.jms.common.JMSException: can't find
              >queue target jndi table for MyQueue@JMSServer-01 != MyQueue
              >weblogic.jms.common.JMSException: can't find queue target jndi table
              >for MyQueue@JMSServer-01
              >!= MyQueue
              > at weblogic.jms.backend.BEDestination.setupSystemSubscription(BEDestination.java:3466)
              > at weblogic.jms.backend.BEManager.sessionAndTopicSubscriberCreate(BEManager.java:234)
              > at weblogic.jms.backend.BEManager.invoke(BEManager.java:384)
              > at weblogic.jms.dispatcher.Request.wrappedFiniteStateMachine(Request.java:602)
              > at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsync(DispatcherImpl.java:152)
              > at weblogic.jms.dispatcher.DispatcherImpl.dispatchAsyncFuture(DispatcherImpl.java:396)
              > at weblogic.jms.dispatcher.DispatcherImpl_WLSkel.invoke(Unknown
              >Source)
              > at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:362)
              > at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:313)
              > at weblogic.security.service.SecurityServiceManager.runAs(SecurityServiceManager.java:821)
              > at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:308)
              > at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
              > at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:213)
              > at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:189)
              >
              >What does this mean ?
              >
              >Ravi.
              >Tom Barnes <[email protected]> wrote:
              >>Seems more than odd. Are you sure that q1 got unprocessed
              >>messages from q2? How did you confirm?
              >>
              >>Perhaps q1 got messages its MDB already processed back again -
              >>an indication that the MDB is throwing Runtime exceptions
              >>or Errors, and the container is rolling back transactions.
              >>
              >>Raviprasad Athivilli wrote:
              >>> Hi
              >>>
              >>> I have a Cluster setup with 2 managed servers srvr1 & srvr2 each running
              >>its own
              >>> JMS server.
              >>> Product version in use is Weblogic SP2.
              >>> Configured a Distributed Queue and deployed it on both the JMS servers.
              >>> Set the load-balancing to round-Robin and Server-Affinity to False
              >>on the connection
              >>> factory.
              >>>
              >>> The producer is an external client which posts 100 messages to the
              >>Distributed
              >>> queue.
              >>> Consumers are MDBs pinned to the respective physical queues on the
              >>respective
              >>> JMS servers.
              >>> Each server has its own store.
              >>>
              >>> Once 100 messages are posted to the Distributed Queue. The messages
              >>are distributed
              >>> to
              >>> the 2 Physical Destinations equally i.e 50-50 each.
              >>>
              >>> While the MDBs are processing the msgs, server srvr1 is brought down
              >>at a point
              >>> when it has consumed only 10 of its 50 msgs.
              >>>
              >>> When the srvr1 is brought up again, i am finding that the store for
              >>that JMS server
              >>> contains the 40 unprocessed msgs in its physical queue + the msgs
              >on
              >>the other
              >>> queue that were unprocessed at the time this server crashed.
              >>>
              >>> When srvr1 went down, srvr2 was running and it went on to process
              >all
              >>its 50 msgs
              >>> completly. Why would those processed msgs show up again when srvr1
              >>is brought
              >>> up ?
              >>>
              >>> Please provide some input !!
              >>>
              >>> Ravi.
              >>
              >
              

  • Load balancing MQ 7.0 Foreign JMS Server and Weblogic 10 MDBs?

    We have the following configuration and we are trying to troubleshoot what appears to be a load balancing issue.
    We have 3 Solaris servers. Each Solaris server has two Weblogic managed servers running on it. There are a total of 6 managed servers in the Weblogic cluster.
    MQ Series 7.0 is also installed on each Solaris server. The MQ queue managers are in a MQ cluster. Each queue manager has the same queues defined.
    We have a foreign JMS Server configured on Weblogic that has destinations and a connection factory defined. There aren't many configuration options available for the connection factory. The destinations are bound to the queues defined on MQ using the MQ bindings file.
    The MQ bindings file was generated using the TRANSPORT(BIND) mechanism. Each bindings file points to the queue manager running on that machine. So the 2 managed servers running on one machine are accepting messages from the queue manager on that machine.
    The MDB's listenning for messages on the MQ queues are configured as follows in the weblogic-ejb-jar.xml:
         <max-beans-in-free-pool>16</max-beans-in-free-pool>
    We also created a custom work manager with min threads constraint=5 and max threads constraint=16. The dispatch-policy of all the MDBs is set to the custom work manager.
    The open input count on each MQ queue managers shows up as 32 which is expected.
    The default load algorithm on the cluster is round-robin.
    When we run a load test (injecting 40 messages per second on one MQ queue), we notice that one managed server ends up being significantly loaded than the other. Each MQ queue manager in the MQ cluster receives approximately the same number of messages in the load test. But it seems like one managed server is preferred over the other in Weblogic.
    What can be done to equally balance the load among the two managed servers on each Solaris server?
    Thanks for the help.

    Load balancing generally applies at determing how many consumer threads has to be created on each of the clustered queue instance. In that sense you have achieved perfect load balancing as your queue instances has the same no of consumer threads.
    Once you have set 'x' consumer threads on a queue, it is upto messaging provider to decide which thread to deliver a particular message and you will hardly have any control over this. Since your 32 threads are listening on the same queue, MQ can select any thread for delivering the message and the behaviour could be non deterministic.
    One option to change your design is to have a dispacther mdb which picks the messages off the MQ and then routes to a weblogic distributed destination and you can have your core mdb which does all processing listen to this distributed destination. You can enable load balancing when the disaptcher mdb routes the message to the distributed destination. Since dispatcher MDB is nothing more than a router, the unbalanced consumption off the MQ shouldn't seriously affect the server.

  • Crystal Reports 2008 Server and MySQL DataBase source for reports

    Hello,
    I am having an issue with crystal reports server 2008. I have created a report on my local machine with crystal reports and the datasource is a ODBC connection to a MySQL database.
    The report works fine on my local. if i publish to the Crystal Reports Server, i get an error when i try and run the report.
    "error Failed to open the connection. "
    I have gone into the database connections for this report and put in the connection details. I have also created a ODBC connection on the server in windows to the actual database (installed both the 32bit and 64bit ODBC drivers, both Test succesfully). But when i go into crystal no matter what settings i try it will not work.
    anyone have any ideas?
    kthank you

    I have solved the issues. This may be usefull for anyone ...
    1. Make sure on the developer machine you have your ODBC connection setup under the System DNS setting in windows.
    2. On the Crystal Report Server, the exact same setup must be done under System DNS, same name, etc
    Once this was done, everything was fixed.

  • I am running Mountain Lion Server, and the App Store indicates an upgrade to Server.App version 2.2.5. When I try to upgrade it will not install. Is that because OSX8 is no longer supported; and if so, is there an alternate source for this upgrade if

    Mountain Lion Server.app no longer supported?

    Probably  a long shot, but try resetting the App Store and Clearing Cookies.
    Reset       Learned from Old Toad
    Resume Interrupted Downloads
    Sign in Doesn’t Appear/Accept Text
    Software Update - Adjust
    Software Update – Stop it From bugging you
    App Store support. There is troubleshooting and a contact link.
    Support

  • Connecting to SQL Server and MYSQL from a Java stored procedure

    hope someone can help with this. i'm trying to connect to different databases (My SQL, SQL Server) from a java stored procedure. when invoking from within an oracle 9i database, i get the java exception error -
    "Cannot connect to MySQL server on 135.177.196.75:3306. Is there a MySQL server running on the machine/port you are trying to connect to?java.security.AccessControlException)".
    this store procedure works fine when invoked from outside of oracle. any replies would be greatly appreciated. thanks!

    the correct drivers have been loaded. it works when called from outside of oracle. only when invoking from within oracle do we get the error message "Cannot connect to MySQL server on 135.177.196.75:3306. Is there a MySQL server running on the machine/port you are trying to connect to?(java.security.AccessControlException)". it sounds like a permissions/security/configuration issue - oracle is not allowing access to the machine/port for the MySQL or SQL Server database. appreciate the responses so far.

  • JMS Server and Service Migration....!

    Hi,
              I am working on Weblogic 9.1 and JMS. I was reading through the weblogic 9.1 documentation and found that it supports Server Migration and Service Migration both manually and automatically to handle failover. Is that true? Can anyone give more insight how it can be achieved in a clustered enviroment with 3 managed servers with an example if possible.
              Thanks in advance.
              kris.

    Cross post your query in Weblogic JMS forum please -
    WebLogic Server - JMS
    As far as I know server migration should not affect the existing message's processing.
    Regards,
    Anuj

  • 10.4.11 server and MySQL - almost there need some help - socket issue

    After having problems with launching the mysql server on the built-in mysql (4.x) on my 10.4 server, I installed 5.1.31 from MySQLCom and followed the install instructions. I attempt to start the server with mysqld_safe as documented.
    This appears to actually launches the process, and the error log doesnt show any errors, and it shows up as mysqld in Activity Monitor, but I can't connect to it via mysql client - I keep getting "Can't connect to local MySQL server through socket /var/mysql/mysql.sock".
    Any suggestions would be very welcome...

    Hi,
    We sorted the problem, one issue was that we did not have the hostname set to the FQDN that was needed for the home folder mounts, this stopped the proper traversal of the /Network/Servers symbolic link. And the other issue is that on our 10.5 afp servers we needed to have the 'Open Directory Server' option set for LDAP Mappings in Directory Utility to be able to see all users in the 10.4 OD.
    J

  • Looking up a distributed queue with two persistent stores using two JMS Svr

    I am trying to do the following:
    1. Setup a distributed queue, i have two servers which are part of the cluster:
    Server A: t3://localhost:7003
    Server B: t3://localhost:7005
    I go in and create two jms servers:
    JMS Server JA: Target on Server A
    JMS Server JB: Target on Server B
    Now as the jms servers need to use a seperate persistent store for each one of them i create two persistent stores.
    2. Now from my MDB which is deployed on another server i lookup the queue using
    t3://localhost:7003,localhost:7005 as the provider url
    My problem is that i always end up listening to the messages on the first jms server and never get to read the messages on jms server JB as i guess i am able to connect to JMS Server JA so i never try and connect to JB? What to do about this?
    Edited by: user4828945 on Mar 23, 2009 2:32 PM

    Allocation of consumers wouldn't take into account the number of messages on the queue - they'd be allocated randomly. The scenario you're proposing shouldn't happen though - WebLogic Server takes into account whether a member has consumers when sending to a distributed destination, but otherwise, assuming that Queue 1 and Queue 2 both have consumers, then distribution of load will be equal. It's not the amount of consumers that determine how many messages get sent to a distributed destination member - it's whether it has members at all.
    Assuming that did occur initially though, you'd expect processing to be a little bit more intensive on the server with the queue holding 30 messages. It would pretty quickly even up though.
    From that point forward, it would be somewhere between difficult and impossible to get to the second scenario, where you have an unequal number of messages in each distributed destination member, unless the work being sent with each message to an MDB can vary significantly in how long it would take to process.
    Assuming (and it's a big if) you could get to that scenario, then the MDBs wouldn't switch over - they stay connected to a particular distributed destination member. And it's their connection to a member as a consumer that controls how WebLogic Server load balances messages (assuming default configuration) so that's part of what makes it unlikely to get there.
    From going back to first principles in the documentation, it seems like your best result would actually be from deploying the MDB to the cluster - that way, there's no remote connections to JMS queues, and you get a pool of MDBs on each server instance.
    Ref here: http://e-docs.bea.com/wls/docs81/ejb/message_beans.html

  • Effect of 'In-Memory' persistent store for JMS destinations

    All,
    We have many BPEL processes running on 1013 and we uses sensors to publish data into JMS-Topic destinations whose persistent store is 'In-Memory'.
    when we bounce the oc4j (opmnctl stopall)
    it always says one of components failed to stop
    Shutting down forcefully...
    Now my question is, If stopping oc4j is not graceful, Will my JMS messages be lost ?
    regards,
    Praveen

    We are on soa 10133.
    We see lot of problems with JMS In-Memory persistent store.
    We have sensors in BPEL which publishes to JMS topics and we have BPEL as consumer which takes and inserts into database.
    We see some times data getting inserted into data base and some times we do not see insertion though we dont see any errored bpels in console.
    I suspect sensors are failing in publishing messages to topics becaz if consumer BPELs are failing we see them in console.
    Anybody has any idea for what reasons sensors fails
    and also what is performance impact if we use file-based JMS store?
    Regards,
    Praveen

  • JDBC Persistent Store Exceptions Table needs to be renamed

    we are facing a situation almost every week in production. The only workaround is to rename the table everytime an boune the Weblogic. Oracle recommended to increase the statement timeout. Not sure if that will work.
    Can anyone provide what is the reason behind this. As there is only admin server in this domain with single JMS Server and JDBC Store. So not sure how the ownership is lost. Any help is appreciated .
    ####<Dec 25, 2010 4:32:01 AM IST> <Error> <Store> <gnnosm21> <OSMServer> <[ACTIVE] ExecuteThread: '65' for queue: 'weblogi
    c.kernel.Default (self-tuning)'> <<WLS Kernel>> <1293231721099> <BEA-280075> <JDBC store "oms_jms_store" failed to r
    etain ownership of database table "OM_BEAWLStore", either due to database access problems or due to concurrent accessors o
    f the table. See the linked exception for more information.
    weblogic.store.io.jdbc.JDBCStoreException: [Store:280065]java.sql.SQLException: ORA-01013: user requested cancel of curren
    t operation
    (server="OSMServer" store="oms_jms_store" table="OM_BEAWLStore"):(Linked Cause, "java.sql.SQLException: ORA-01013: user r
    equested cancel of current operation
    at weblogic.store.io.jdbc.JDBCStoreIO.readTableLockRecord(JDBCStoreIO.java:2078)
    at weblogic.store.io.jdbc.JDBCStoreIO.updateTableOwnership(JDBCStoreIO.java:2105)
    at weblogic.store.io.jdbc.ReservedConnection.timerExpired(ReservedConnection.java:436)
    at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:265)
    at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    java.sql.SQLException: ORA-01013: user requested cancel of current operation
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1060)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:839)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3361)
    at weblogic.jdbc.wrapper.PreparedStatement.executeQuery(PreparedStatement.java:100)
    at weblogic.store.io.jdbc.JDBCStoreIO.internalRead(JDBCStoreIO.java:721)
    at weblogic.store.io.jdbc.JDBCStoreIO.readTableLockRecord(JDBCStoreIO.java:2066)
    at weblogic.store.io.jdbc.JDBCStoreIO.updateTableOwnership(JDBCStoreIO.java:2105)
    at weblogic.store.io.jdbc.ReservedConnection.timerExpired(ReservedConnection.java:436)
    at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:265)
    at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

    Hi,
    You didnot mention what is that everytime you mean in your question....
    Did you check is there any other user also using the same database table "OM_BEAWLStore" from your development environment connecting with the same JMS persistance store?

  • MDBs failed to connect to remote JMS server

    Hi,
              We currently have 2 clusters: one is a regular cluster (cluster1) and the other is JMS cluster (cluster2). Our JMS server and filestore are targeted to a migratable server in JMS cluster.
              In our weblogic-ejb-jar.xml, we added element <provider-url> to the <message-driven-descriptor> to allow JMS remote connection as follows:
              <weblogic-enterprise-bean>
                   <ejb-name>MyBean</ejb-name>
                   <message-driven-descriptor>
                        <destination-jndi-name>MyTopic</destination-jndi-name>
              <provider-url>t3://myhost:19009,myhost:19011</provider-url>
              <connection-factory-jndi-name>MyConnectionFactory</connection-factory-jn
              di-name>
                   </message-driven-descriptor>
              </weblogic-enterprise-bean>
              When we deployed our application, the Connection Status of MyBean showed "disconnected". I have tried different values (t3://myhost:19009;t3://myhost:19011) and
              (t3://myhost:19009) but got the same result.
              When I re-targeted the JMS server and filestore to a regular server (instead of migratable server), I was able to connect remotely. But because we want to be able to migrate our JMS server (auto and manually), I have to target it to a migratable server.
              I could not figure out why my MDBs failed to connect to a remote JMS server when it is targeted to a migratable server? Is there a restriction that we have to target to a regular server in order to connect remotely or I'm doing something wrong?
              Any help would be greatly appreciated.
              Thanks,
              Thao

    I'm using WL9.2 and my migratable server is actually up and running (is that what you mean about booted?).                    I meant checking your log files to make sure that the JMS server itself actually booted, not checking that the host WL server was up. (For example you should see INFO messages indicating that the JMS server has loaded "X" records from its persistent store).
              >>> Could you elaborate on the known problem?
              9.x MDBs have special code for enhanced handling of remote distributed destinations. I'm guessing that this code is somehow causing problems when the remote JMS server is migratable. I don't have enough information to elaborate further than that.
              >>> What else I can try?
              Beyond contacting customer support, I'm not sure.
              Tom

Maybe you are looking for