JMS Connector WebSphere MQ JMS Problems

I'm having problems configuring and using Oracle's JMS Connector with IBM WebSphere MQ JMS, as explained in the following Oracle How-to:
http://www.oracle.com/technology/tech/java/oc4j/1013/how_to/how-to-connect-to-mqseries/doc/how-to-connect-to-mqseries.html
by Jeff Steidl
When trying to deploy the application to the oc4j (wich is done as part of the default ant target), I get the following error in the oc4j console:
2006-07-20 12:04:29.859 ERROR J2EE EJB3027 [how-to-connect-to-mqseries] An error
occured deploying EJB module: java.lang.InstantiationException: Resource except
ion(MQJMSRAInstanceName) for MessageDrivenBean DealerEjbName during endpoint act
ivation: failure looking up resource provider factory for XAConnectionFactoryWra
pper [XA Unified]-OracleGJRA.XAConnectionFactoryWrapper.pedroec.-7b007002:10c88d
48c98:-7fff.171 []: javax.resource.spi.ResourceAdapterInternalException: Looking
up java:comp/resource/MQJMSReference/mqxacf: javax.naming.NameNotFoundException
: No resource named 'MQJMSReference/mqxacf'found
I assume the problem is that I don't have an appropriate WebShpere binding for the resource.
Before going through the mentioned How-to, I followed the install instructions in:
http://www.oracle.com/technology/tech/java/oc4j/1003/how_to/jcajmsmq/doc/Install.html
In order to create a queue manager, a queue, a topic and the appropriate bindings.
After following the previous document, I end up with the following bindings (listing obtained using JMSAdmin console):
InitCtx> dis ctx
Contents of InitCtx
.bindings java.io.File
a MQXAQCF com.ibm.mq.jms.MQXAQueueConnectionFactory
a MQTCF com.ibm.mq.jms.MQTopicConnectionFactory
a MQQCF com.ibm.mq.jms.MQQueueConnectionFactory
a MQQ com.ibm.mq.jms.MQQueue
a MQT com.ibm.mq.jms.MQTopic
a MQXATCF com.ibm.mq.jms.MQXATopicConnectionFactory
7 Object(s)
0 Context(s)
7 Binding(s), 6 Administered
And as you can see there is no mqxacf binding.
So the question is, should I define a new binding with that name? If so, what would be the command (def xacf(mqxacf) ?)
As you can see, ther is a MQXAQCF binding so Instead of defining a new mqxacf (which I really don't know how to do...) I thought that maybe I could use this one, being a xa queue connection factory instead of a plain xa connection factory.
This is used by the MDB, so I modified orion-ejb-jar.xml changing:
<resource-ref-mapping
location = "MQJMSRASubcontext/MyXACF"
name = "jms/DealerConnectionFactory"/>
<config-property>
<config-property-name>ConnectionFactoryJndiName
</config-property-name>
<config-property-value>MQJMSRASubcontext/MyXACF
</config-property-value>
</config-property>
for this:
<resource-ref-mapping
location = "MQJMSRASubcontext/MyXAQCF"
name = "jms/DealerConnectionFactory"/>
<config-property>
<config-property-name>ConnectionFactoryJndiName
</config-property-name>
<config-property-value>MQJMSRASubcontext/MyXAQCF
</config-property-value>
</config-property>
I changed MyXACF with MyXAQCF because oc4j-ra.xml defines a jndi location of mqxacf (which is not beign found in the bindings) for MyXACF while it defines a jndi location of MQXAQCF for MyXAQCF, which is defined in the bindings.
With this change, the application deploys ok ... but when I run the client (ant larry) I get the following error (from the client console, not the oc4j console... in the oc4j console, nothing is reported):
run-demo:
[exec] java.lang.NullPointerException
[exec] at oracle.j2ee.ra.jms.generic.RAUtils.lookupUsingResourceProvide
r(RAUtils.java:254)
[exec] at oracle.j2ee.ra.jms.generic.CommonManagedConnectionFactoryImpl
.getFactory(CommonManagedConnectionFactoryImpl.java:605)
[exec] at oracle.j2ee.ra.jms.generic.CommonFactoryWrapper.localCreateCo
nnection(CommonFactoryWrapper.java:121)
[exec] at oracle.j2ee.ra.jms.generic.ConnectionFactoryWrapper.createCon
nection(ConnectionFactoryWrapper.java:62)
[exec] at MyChannel.<init>(MyChannel.java:46)
[exec] at Player.play(Player.java:242)
[exec] at Player.main(Player.java:30)
Since MyCF is bound to the jndi location mqcf (in oc4j-ra.xml) which does not exist in my MQ bindings I decided to modify orion-ejb-jar.xml as I did for the MyXACF of the MDB.
I changed
<resource-ref-mapping
location = "MQJMSRASubcontext/MyCF"
name = "jms/PlayerConnectionFactory"/>
with this:
<resource-ref-mapping
location = "MQJMSRASubcontext/MyQCF"
name = "jms/PlayerConnectionFactory"/>
I changed MyCF to MyQCF, which has a jndi location of MQQCF (specified inside of oc4j-ra.xml) which has a valid MQ binding.
.... but I get the following error:
run-demo:
[exec] Exception in thread "main" java.lang.AbstractMethodError: com.ibm.mq
.jms.MQQueueConnectionFactory.createConnection()Ljavax/jms/Connection;
[exec] at oracle.j2ee.ra.jms.generic.CommonManagedConnectionFactoryImpl
.createManagedConnection(CommonManagedConnectionFactoryImpl.java:261)
[exec] at com.evermind.server.connector.ApplicationConnectionManager.cr
eateManagedConnection(ApplicationConnectionManager.java:1333)
[exec] at oracle.j2ee.connector.ConnectionPoolImpl.createManagedConnect
ionFromFactory(ConnectionPoolImpl.java:324)
[exec] at oracle.j2ee.connector.ConnectionPoolImpl.access$800(Connectio
nPoolImpl.java:95)
[exec] at oracle.j2ee.connector.ConnectionPoolImpl$NonePoolingScheme.ge
tManagedConnection(ConnectionPoolImpl.java:1209)
[exec] at oracle.j2ee.connector.ConnectionPoolImpl.getManagedConnection
(ConnectionPoolImpl.java:782)
[exec] at com.evermind.server.connector.ApplicationConnectionManager.ge
tConnectionFromPool(ApplicationConnectionManager.java:1532)
[exec] at com.evermind.server.connector.ApplicationConnectionManager.ac
quireConnectionContext(ApplicationConnectionManager.java:1477)
[exec] at com.evermind.server.connector.ApplicationConnectionManager.al
locateConnection(ApplicationConnectionManager.java:1423)
[exec] at oracle.j2ee.connector.OracleConnectionManager.unprivileged_al
locateConnection(OracleConnectionManager.java:244)
[exec] at oracle.j2ee.connector.OracleConnectionManager.allocateConnect
ion(OracleConnectionManager.java:198)
[exec] at oracle.j2ee.ra.jms.generic.CommonFactoryWrapper.localCreateCo
nnection(CommonFactoryWrapper.java:130)
[exec] at oracle.j2ee.ra.jms.generic.QueueConnectionFactoryWrapper.crea
teConnection(QueueConnectionFactoryWrapper.java:84)
[exec] at MyChannel.<init>(MyChannel.java:46)
[exec] at Player.play(Player.java:242)
[exec] at Player.main(Player.java:30)
[exec] Result: 1
So as you can see I'm stuck.
Maybe it is just a simple matter of defining the appropriate objects and bindigs for mqxacf and mqcf, but I don't know how to do that.
I would appreciate any help.
Message was edited by:
pablokrause

Thanks again for your quick and useful response Jeff.
Regarding the extra administration steps to get topic consumers working in MQ, I had already executed them a few days ago as part of the MQ setup as is described in another JMS resource adapter demo (see references at bottom of this reply) but I thought that doing it once was enough. Well, it seems that you have to execute those commands each time you start MQ!
I executed them (again), as you kindly suggested in your last response and voila, it worked!... well sort of.
After starting the clients, I get the following random error in oc4j:
06/07/21 15:39:18 Got message: PING
06/07/21 15:39:18 randomly testing rollback:
06/07/21 15:39:18 sending a junk message
06/07/21 15:39:18 Sent message: Invalid junk message
06/07/21 15:39:18 marking transaction for rollback
06/07/21 15:39:18 sending a junk message
06/07/21 15:39:18 Sent message: Invalid junk message
2006-07-21 15:39:18.921 WARNING J2EE JTA0107 Error in resource driver during rol
lback: javax.transaction.xa.XAException: XA operation failed, see errorCode
2006-07-21 15:39:18.921 WARNING J2EE JTA0104 Failed to add the resource due to e
rror in the resource : javax.transaction.xa.XAException: Attempt to start transa
ction while transaction Xid( Global Id c0.a7.ff.20.b0.22.00.00.0c.00.00.00.00.00
.00.00.00.00.00.00.00.00.00.00, Format Id 4660, Branch Id 7d.20.c6.d9.00.00.00.0
0.00.00.00.00.00.00.00.00) is active. errorcode : -6 : Enlistment of resource fa
iled. Attempt to start transaction while transaction Xid( Global Id c0.a7.ff.20.
b0.22.00.00.0c.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00, Format Id 4660, Bra
nch Id 7d.20.c6.d9.00.00.00.00.00.00.00.00.00.00.00.00) is active.
followed, after a few seconds, by the following stack trace:
06/07/21 16:13:30 Got message: PING
06/07/21 16:13:30 MQJMS3011: Failed to publish message to MQ queue
06/07/21 16:13:30 javax.jms.JMSException: MQJMS3011: Failed to publish message t
o MQ queue
06/07/21 16:13:30 at com.ibm.mq.jms.services.ConfigEnvironment.newExceptio
n(ConfigEnvironment.java:553)
06/07/21 16:13:30 at com.ibm.mq.jms.MQMessageProducer.publish(MQMessagePro
ducer.java:1855)
06/07/21 16:13:30 at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProduc
er.java:976)
06/07/21 16:13:30 at com.ibm.mq.jms.MQMessageProducer.send(MQMessageProduc
er.java:1056)
06/07/21 16:13:30 at oracle.j2ee.ra.jms.generic.CommonProducerWrapper.send
(CommonProducerWrapper.java:121)
06/07/21 16:13:30 at MyChannel.send(MyChannel.java:73)
06/07/21 16:13:30 at Dealer.onMessage(Dealer.java:210)
06/07/21 16:13:30 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native M
ethod)
06/07/21 16:13:30 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMet
hodAccessorImpl.java:39)
06/07/21 16:13:30 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Deleg
atingMethodAccessorImpl.java:25)
06/07/21 16:13:30 at java.lang.reflect.Method.invoke(Method.java:585)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.joinpoint.EJBJoin
PointImpl.invoke(EJBJoinPointImpl.java:35)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.InvocationContext
Impl.proceed(InvocationContextImpl.java:69)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.system.DMSInterce
ptor.invoke(DMSInterceptor.java:52)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.InvocationContext
Impl.proceed(InvocationContextImpl.java:69)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.system.SetContext
ActionInterceptor.invoke(SetContextActionInterceptor.java:34)
06/07/21 16:13:30 at com.evermind.server.ejb.interceptor.InvocationContext
Impl.proceed(InvocationContextImpl.java:69)
06/07/21 16:13:30 at oracle.j2ee.connector.messageinflow.MessageEndpointIm
pl.invokeMessageInflowCallbacks(MessageEndpointImpl.java:294)
06/07/21 16:13:30 at MessageListener_MessageEndpoint1.onMessage(MessageLis
tener_MessageEndpoint1.java:39)
06/07/21 16:13:30 at oracle.j2ee.ra.jms.generic.WorkConsumer.run(WorkConsu
mer.java:237)
06/07/21 16:13:30 at oracle.j2ee.connector.work.WorkWrapper.runTargetWork(
WorkWrapper.java:242)
06/07/21 16:13:30 at oracle.j2ee.connector.work.WorkWrapper.doWork(WorkWra
pper.java:215)
06/07/21 16:13:30 at oracle.j2ee.connector.work.WorkWrapper.run(WorkWrappe
r.java:190)
06/07/21 16:13:30 at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worke
r.run(PooledExecutor.java:814)
06/07/21 16:13:30 at java.lang.Thread.run(Thread.java:595)
In the Dealer code, I found a piece of code that randomly generating a junk message and marking the transaction for rollback. If I comment out this code, everything works fine.
So, even when I managed to make the demo work, the transactional stuff is not working.
It would be really nice to know what is going on, but I'm tired, its fiday and I'm clueless...
Now, for the "Unable to load message properties file - mqji(xx).properties", it is still showing up, but as you said, MQ seems to work fine.
Thank you very much again Jeff for your invaluable and extremely responsive help.
References:
I can't seem to find an demo that was very useful for me for setting up MQ in the Oracle site, but the direct links seem to still be working:
http://www.oracle.com/technology/tech/java/oc4j/1003/how_to/jcajmsmq/doc/readme.html
http://www.oracle.com/technology/tech/java/oc4j/1003/how_to/jcajmsmq/doc/Install.html
and the sample code and scripts:
http://otn.oracle.com/tech/java/oc4j/1003/how_to/jcajmsmq.zip
Message was edited by:
pablokrause

Similar Messages

  • How to Configure and Use Oracle's JMS Connector with Tibco EMS

    Jeff,
    I am getting the below exception while try to do the deployment of the sample provided on 'How to Configure and Use Oracle's JMS Connector with Tibco Enterprise for JMS'
    While deployment not able to get the 'TibcoJMSReference',
    As I understand in the 'orion-application.xml for the below, unable to get the instance. Could you adivce how I can enable the trace more?
    <resource-provider class="com.evermind.server.deployment.ContextScanningResourceProvider" name="TibcoJMSReference">
    could you help to resolve the issue?
    Error
    Operation failed with error: No resource named 'TibcoJMSReference/TibcoXACF'found

    Hi,
    I'm also looking for the same 'Configure and Use Oracle's JMS Connector with Tibco JMS to consume message'. If you have already implemented and working fine, please let me know the steps and some documents.

  • WebSphere MQ JMS adapter

    I've been stuck on this for nearly a week, think I better ask here...
    After adding the following JAR file from MQ6 client to com.sap.aii.af.jmsproviderlib:
    CL3Export.jar
    CL3Nonexport.jar
    com.ibm.mq.jar
    com.ibm.mqjms.jar
    connector.jar
    dhbcore.jar
    rmm.jar
    Unlike other people who has a option of WebSphere MQ JMS Provider, I only have WebSphere MQ(non-JMS) and I'm unable to connect to the queue. Only "Adapter has not provided any status information about this channel" is returned.
    I can't find any useful error message for troubleshooting, does anyone can give me a hand on this?

    Hi..Robert,
    in sender side u will get the  web sphere MQ(non-jms) and in receiver side u will get the web sphere MQ jms provider..
    u have mentioned the parameters as jms queue ,channel name and queue manager name in capital letters only..
    regards,
    Pasi..
    pls reward points if it helpful...

  • XI to IBM Websphere Default JMS Provider with JNDI

    Hello everybody!
    We face a problem with connecting SAP XI to IBM WebSphere Default JMS Provider (need to send a message from XI to WebSphere JMS and receive the response).
    We have the following versions installed:
        SAP XI: 7.0 SP8 , Sun JDK 1.4.2
        IBM WebSphere: IBM WebSphere Application Server ND, 6.0.2.17, J2RE 1.4.2 IBM
    We cannot set the JMS adapter of SAP XI for conecting with IBM WebSphere Default JMS Provider. The Communication Channel has erroneous state (at runtime) and the Communication Channel Monitoring tool displays the error message as described below (under "Variant 1" and "Variant 2" sub-headings) depending on the settings performed. 
    For connecting, the following JMS-provider settings were used at IBM WebSphere side:
       JMS Providers: Default Messaging Provider
       Queue Connection Factories: name:QueueConnectionFactory, jndi:jms/QueueConnectionFactory, provider: Default Messaging Provider
       Queues: name Queue, jndi: jms/Queue, provider: Default Messaging Provider
    The XI communication channel (and associated JMS-adapter) was set as Variants 1 and 2 show. Settings for both cases and received error messages were the following:
    <b>Variant 1.</b>
        Adapter type: JMS
        Type: Receiver
        JMS Provider: Access JMS Provider with JNDI (Java Naming and Directory Interface)
        JNDI Lookup Name of QueueConnectionFactory:  jms/QueueConnectionFactory
        JNDI Lookup Name of JMS Queue: jms/Queue
        Name of JNDI Initial Context Factory: com.sap.engine.services.jndi.InitialContextFactoryImpl
        JNDI Server Address: iiop://WEBSPHERE.HOST:2809/ 
        As the result, the Communication Channel Monitoring displays that the channel has erroneous state and the following error message is written:
        "Error during channel initialization; exception trace: com.sap.engine.services.jndi.persistent.exceptions.NameNotFoundException: Object not found in lookup of jms/QueueConnectionFactory.
    at com.sap.engine.services.jndi.implserver.ServerContextImpl.lookup(ServerContextImpl.java:649)"
    <b>Variant 2</b>
        The same settings as in Variant 1 above, were used and additionally the following settings were done:
        - Name of JNDI Initial Context Factory: com.ibm.websphere.naming.WsnInitialContextFactory
        - The archive aii_af_jmsproviderlib.sda containing libraries required by WsInitialContextFactory, was deployed to the SAP WebAS where the XI is running. Those libraries were taken from WebSphere Application Server Pluggable Application Client installation package (described in the article "WebSphere Application Server Pluggable Application Client" located at http://www-128.ibm.com/developerworks/websphere/library/techarticles/0409_bhogal/0409_bhogal.html)
        - Also, as it is recommended in the referred article, the files required by IBM's iiop protocol (ibmext.jar ibmorb.jar ibmorbapi.jar) were put to the folder jre/lib/endorsed of the server(Sun JVM 1.4.2 is used by SAP WebAS / XI).
        As the result, the Communication Channel Monitoring displays that the channel has erroneous state as well and the following error message is written:
       "No adapter registered for this channel"
    We have not found the recommended solution either in SDN forums or in Internet in general. Is it yet possible to connect SAP XI to IBM WebSphere Default JMS Provider having mentioned product versioning? If yes, what settings have to be performed?

    IBM Websphere Default JMS Provider which is installed alongwith the application server is nothing but a scaled down version of the IBM WebSphere MQSeries. you should be able to connect to it with the same settings that can be used for a separate MQSeries server connectivity from XI.

  • JMS Connector ReceiverThreads setting in 10.1.3.3 to improve performance?

    Gurus,
    I am using nonBlockingInvoke=true property in bpel.xml to spawn a thread for each parallel flow activity.
    However, upon setting this property, I found a hit in performance. I suspect the JMS Connector ReceiverThreads setting to be the issue. If more ReceiverThreads could listen on the queue, the performance might improve. (Page 47 of the 10.1.3.1. Performance Tuning Document).
    But, I'm not able to locate this property in orion-ejb-jar.xml. Is this property set in some other file or does this property have to be added (please can you provide the exact code)?
    Thanks a ton!
    SP

    You can find ReceiverThreads documentation here:
    http://download.oracle.com/docs/cd/B32110_01/web.1013/b28958/jms.htm
    (Table 4-11)
    There are examples above the table which show how to add a property.
    (A property can be added either to orion-ejb-jar.xml or ejb-jar.xml though if you are setting the property via an .xml file orion-ejb-jar.xml is recommended since this is an OC4J-specific setting.)
    Alternatively, you can set it via annotation. See here:
    http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/actcfgprop.htm

  • JMS Provider vs. JMS Connector

    Hi
    can any1 explain me diffrenteces between those 2 ?
    is it related to JMS Adapter there is 2 option likes MQ Series and JNDI one of them goes to the other?
    thx,Shai

    Hi,
    >> JMS Adapter there is 2 option likes MQ Series and JNDI one of them goes to the other?
       YES , They are the 2 options.
    >> one of them goes to the other?
    NO
    JMS Provider-  Server
    JMS connector - use such objects in the application, instead of creating and configuring these object
    This will help you
    http://help.sap.com/saphelp_nw04/helpdata/en/a3/63af1bbf09469fa1615c05f0daff6f/frameset.htm
    Regards
    Agasthuri Doss

  • Does Weblogic7.0 supports JMS-connector

              HI,
              I am not sure about this. please someone gives some insights..
              As in the connector specifications 1.0 IN chapter 5 (Connection Management) it
              is written
              "An application component uses a connection factory to access a connection instance,
              which the component then uses to connect to the underlying EIS. A resource adapter
              acts as a factory of
              connections. Examples of connections include database connections, JMS (Java Message
              Service) connections, and SAP R/3 connections. Note that the support for pluggability
              of JMS providers into an application server will be added in the future versions
              of the specification."
              And i think weblogic7.0 supports connector specifications 1.0 only. please someone(may
              be from BEA) can tell that what is the truth. Can i develope a JMS connector and
              deploy/run on weblogic7.0.
              Regards
              Akhil Nagpal
              

    I'm going to get a bit carried away with my answer:
              I'm not aware of any work going on in the area of JMS connectors, and I
              don't think they are supported in 7.0. I'm really not conversant
              - you will likely get a better answer from the
              weblogic.developer.interest.connector newsgroup.
              Note that MDBs and the messaging bridge already cache their
              underlying connections efficiently -- so
              there is no need for a connector there. Also most J2EE applications
              can programmitically cache their JMS resources somewhere handy
              in an EJB. (There is no performance hit for an unused
              JMS object, except for memory usage.)
              But if you need to pool JMS resources, consider writing your own
              pool - there isn't much to it. Check the sample code at the end of
              the "JMS Performance Guide" white-paper on dev2dev.bea.com.
              If you can wait, Weblogic 8.1 (beta out soon) has a simple way
              to automatically pool JMS connections via ejb resource references.
              Hope this helps,
              Tom
              Akhil Nagpal wrote:
              > HI,
              > I am not sure about this. please someone gives some insights..
              > As in the connector specifications 1.0 IN chapter 5 (Connection Management) it
              > is written
              > "An application component uses a connection factory to access a connection instance,
              > which the component then uses to connect to the underlying EIS. A resource adapter
              > acts as a factory of
              > connections. Examples of connections include database connections, JMS (Java Message
              > Service) connections, and SAP R/3 connections. Note that the support for pluggability
              > of JMS providers into an application server will be added in the future versions
              > of the specification."
              >
              >
              > And i think weblogic7.0 supports connector specifications 1.0 only. please someone(may
              > be from BEA) can tell that what is the truth. Can i develope a JMS connector and
              > deploy/run on weblogic7.0.
              >
              > Regards
              > Akhil Nagpal
              >
              >
              >
              

  • JMS MDB Clustering destination reconnect problem

    Hey,
              We have got a JMS cluster and we are using MDB:s that listen to a specific
              JMS topic.
              When using MDB:s I have found out, that when the cluster node where my JMS
              server containing the JMS topic is located goes down I get a connection
              problem. The MDB keeps logging following message into weblogic.log:
              The JMS destination with the JNDI name:
              com.nokia.cce.server2.EAIElinkAliveQueue could not be found. Please ensure
              that the
              JNDI name in the weblogic-ejb-jar.xml is correct, and the JMS destination
              has been deployed.>
              <Apr 3, 2002 10:30:39 AM EEST> <Warning> <EJB> <The Message-Driven EJB:
              ElinkKeepAliveManager2 is unable to connect to the J
              MS destination: com.nokia.cce.server2.EAIElinkAliveQueue. The EJB container
              will automatically attempt to re-establish the c
              onnection with the JMS server. This warning may occur during WebLogic
              Cluster start-up if the JMS destination is located on
              another WebLogic Server instance. When the JMS server connection is
              re-established, the Message-Driven EJB will again receiv
              e JMS messages.
              The Error was:
              The JMS destination with the JNDI name:
              com.nokia.cce.server2.EAIElinkAliveQueue could not be found. Please ensure
              that the
              JNDI name in the weblogic-ejb-jar.xml is correct, and the JMS destination
              has been deployed.>
              The MDB tries to reconnect to the JMS topic every 10th second and keeps on
              logging this message until the corresponding JMS server comes up again.
              (the example is from a JMS queue, but the same phenomen occurs also for
              topics).
              It is very irritating to keep on getting this message every 10th second to
              the logging file. The logging file becomes full of these messages, which
              takes a lot of file space + makes reading other error messages from the
              weblogic logging very difficult.
              Is there anything todo to avoid this ?
              Can You reconfigure the reconnect interval ?
              It would be enough to get one message, that the connection is lost but
              weblogic will try to reconnect. And then the next message would tell when
              a connection has succeeded again.
              I assume there is no way to specify a primary/secondary
              <destination-jndi-name> in the MDB's deployment descriptor ?
              Is the only way to avoid this, to rewrite the implementation to use custom
              based JMS subscribers instead of using MessageDrivenBean kind of
              implemetation ?
              This is a little bit sad, since MDB's gives such a nice and simple solution
              otherwise...
              Regards
              Jan-Erik
              PS. I'm using weblogic 6.1 and I can not migrate to 7.0 in a near future.
              

    Your comments are noted.
              I believe you can set "JMSPollingIntervalSeconds" in the weblogic descriptor.
              Jan-Erik Aladin wrote:
              > Hey,
              >
              > We have got a JMS cluster and we are using MDB:s that listen to a specific
              > JMS topic.
              > When using MDB:s I have found out, that when the cluster node where my JMS
              > server containing the JMS topic is located goes down I get a connection
              > problem. The MDB keeps logging following message into weblogic.log:
              >
              > The JMS destination with the JNDI name:
              > com.nokia.cce.server2.EAIElinkAliveQueue could not be found. Please ensure
              > that the
              > JNDI name in the weblogic-ejb-jar.xml is correct, and the JMS destination
              > has been deployed.>
              > <Apr 3, 2002 10:30:39 AM EEST> <Warning> <EJB> <The Message-Driven EJB:
              > ElinkKeepAliveManager2 is unable to connect to the J
              > MS destination: com.nokia.cce.server2.EAIElinkAliveQueue. The EJB container
              > will automatically attempt to re-establish the c
              > onnection with the JMS server. This warning may occur during WebLogic
              > Cluster start-up if the JMS destination is located on
              > another WebLogic Server instance. When the JMS server connection is
              > re-established, the Message-Driven EJB will again receiv
              > e JMS messages.
              > The Error was:
              > The JMS destination with the JNDI name:
              > com.nokia.cce.server2.EAIElinkAliveQueue could not be found. Please ensure
              > that the
              > JNDI name in the weblogic-ejb-jar.xml is correct, and the JMS destination
              > has been deployed.>
              >
              > The MDB tries to reconnect to the JMS topic every 10th second and keeps on
              > logging this message until the corresponding JMS server comes up again.
              > (the example is from a JMS queue, but the same phenomen occurs also for
              > topics).
              >
              > It is very irritating to keep on getting this message every 10th second to
              > the logging file. The logging file becomes full of these messages, which
              > takes a lot of file space + makes reading other error messages from the
              > weblogic logging very difficult.
              >
              > Is there anything todo to avoid this ?
              > Can You reconfigure the reconnect interval ?
              > It would be enough to get one message, that the connection is lost but
              > weblogic will try to reconnect. And then the next message would tell when
              > a connection has succeeded again.
              > I assume there is no way to specify a primary/secondary
              > <destination-jndi-name> in the MDB's deployment descriptor ?
              >
              > Is the only way to avoid this, to rewrite the implementation to use custom
              > based JMS subscribers instead of using MessageDrivenBean kind of
              > implemetation ?
              > This is a little bit sad, since MDB's gives such a nice and simple solution
              > otherwise...
              >
              > Regards
              > Jan-Erik
              >
              > PS. I'm using weblogic 6.1 and I can not migrate to 7.0 in a near future.
              

  • XA transactions with JMS connector (with BEA WLS)

    Hello,
    are XA transactions supported by JMS connector when communicating with BEA WLS (version 8.1)?
    Thanks
    Tomas

    Hi
    Yes
    Check this JMS FAQ
    http://www.google.com/url?sa=t&ct=res&cd=1&url=https%3A%2F%2Fwww.sdn.sap.com%2Firj%2Fsdn%2Fgo%2Fportal%2Fprtroot%2Fdocs%2Flibrary%2Fuuid%2F604e2b64-e689-2910-64b3-ffd650f83756&ei=LcmERubLL4fgsALL6snWDw&usg=AFQjCNHbiooj-7G5g6w4tVVZQiRuQ5XQ_A&sig2=tpxbhUpIKR5oSe3aab8h4w
    regards
    krishna

  • JMS (Transaction ???) problem, consumer receives all messages at once.

    Hallo, I have an application which implements asynch communication between the web and business layer using JMS.
    On a page a user can upload files, which are processed by the backend. For large files this can be a long running process, thats why we use JMS to send the file asynchronously and use JMS to update progress information on the page.
    The application works fine on JBoss 6 with HornetMQ.
    After porting to Weblogic I see consistently a strange phenomenon. The update messages from the processing backend logic are send as expected. But the receiver does not receive one message after another but receives all the messsages almost at once after only the producer has sent the last message.
    For me this is totally unexpected behavior and of course our progress bar on the page does not work properly, but merely jumps from 0 to 100% after the data has been processed.
    It looks like the consumer waits until the producer has finished its transaction. But how can this be possibly? I have learned that transaction never span producer - messagesystem - consumer.
    Example Code:
    Producer:
    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    import javax.annotation.Resource;
    import javax.ejb.EJB;
    import javax.ejb.Stateless;
    import javax.interceptor.Interceptors;
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.DeliveryMode;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import org.apache.log4j.Logger;
    import com.sun.tools.ws.wsdl.document.jaxws.Exception;
    import dsde.core.aspects.DsdeException;
    import dsde.core.aspects.ExceptionHandler;
    import dsde.core.entity.Data;
    @Stateless
    @Interceptors(ExceptionHandler.class)
    public class ParserBean implements Parser {
         private Logger log = Logger.getLogger(this.getClass());
         @EJB
         private DataDAO dataDAO;
         //Weblogic
         @Resource(mappedName="jms.BackQueue")
         //Jboss
         //@Resource(mappedName="queue/dsdeBackQueue")
         private Destination backQueue;
         //Weblogic
         @Resource(mappedName="jms.dsdeConnectionFactory")
         //JBoss
         //@Resource(mappedName="XAConnectionFactory")
         private ConnectionFactory connectionFactory;
         private Connection connection;
         @Override
         public void parse(String text, String description, String sessionId) throws DsdeException{
              double percentDone = 0;
              double j = 0.0;
              //Simuliere was langdauerndes, schwieriges
              for (int i=0; i < text.length(); i++) {
                   j = i;
                   percentDone = j / text.length() * 100;
                   try {
                        Thread.sleep(1000);
                   } catch (InterruptedException e) {
                        log.error(e);
                   if (i % 2 == 0) {
                        //periodisch das Frontend mit dem Fortschritt updaten
                        sendFeedback((int)percentDone, sessionId);
              //Zum Schluss noch senden dass wir fertig sind
              //Sonst wird der Send Button nicht wieder aktiv
              percentDone=100;
              sendFeedback((int)percentDone, sessionId);
              //Jetzt wird noch richtig geparsed :-)
              String[] words = text.split(" ");
              //Entity konstruieren
              Data data = new Data(description, words);
              //Das Ergebnis in die Datenbank schreiben
              dataDAO.saveData(data);
         private void sendFeedback(int percentDone, String sessionId) {
              Session session = null;
              try {
                   session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
                   MessageProducer producer = session.createProducer(backQueue);
                   producer.setTimeToLive(50000);
                   producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
                   TextMessage message = session.createTextMessage();
                   message.setJMSCorrelationID(sessionId);
                   message.setText("" + percentDone);
                   producer.send(message);
                   log.info("ParserBean has sent " + percentDone);
              } catch (JMSException e) {
                   log.error(e);
              } finally {
                   if (session != null) {
                        try {
                             session.close();
                        } catch (JMSException e) {
                             log.error(e);
         @PostConstruct
         public void init(){
              try {
                   connection = connectionFactory.createConnection();
              } catch (JMSException e) {
                   log.error(e);
         @PreDestroy
         public void close() {
              try {
                   connection.close();
              } catch (JMSException e) {
                   log.error(e);
    }Consumer:
    import javax.annotation.ManagedBean;
    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;
    import javax.faces.bean.SessionScoped;
    import javax.faces.context.FacesContext;
    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.Queue;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
    import javax.servlet.http.HttpSession;
    import org.apache.log4j.Logger;
    @ManagedBean
    @SessionScoped
    public class FeedbackReceiverBean implements MessageListener {
         private Logger log = Logger.getLogger(this.getClass());
         //jndi names of managed objects
         private String connectionFactoryName;
         private String queueName;
         private Connection connection;
         private Session session;
         private int percent;
         private boolean disabled;
         public boolean isDisabled() {
              return disabled;
         public void setDisabled(boolean disabled) {
              this.disabled = disabled;
         public int getPercent() {
              return percent;
         public void setPercent(int percent) {
              this.percent = percent;
         public void setConnectionFactoryName(String connectionFactoryName) {
              this.connectionFactoryName = connectionFactoryName;
         public void setQueueName(String queueName) {
              this.queueName = queueName;
         @PostConstruct
         public void init() throws NamingException, JMSException {
              FacesContext facesContext = FacesContext.getCurrentInstance();
              HttpSession httpSession = (HttpSession) facesContext.getExternalContext().getSession(false);
              String sessionId = httpSession.getId();
              Context context = new InitialContext();
              ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup(this.connectionFactoryName);
              Queue queue = (Queue) context.lookup(this.queueName);
              this.connection = connectionFactory.createConnection();
              this.session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
              String filter = "JMSCorrelationID = '" + sessionId + "'";
              MessageConsumer consumer = session.createConsumer(queue, filter);
              consumer.setMessageListener(this);
              connection.start();
         @PreDestroy
         public void close() throws JMSException {
              this.session.close();
              this.connection.close();
         @Override
         public void onMessage(Message message) {
              if (message instanceof TextMessage) {
                   TextMessage textMessage = (TextMessage) message;
                   try {
                        this.percent = Integer.parseInt(textMessage.getText());
                        if (percent >= 100) {
                             this.disabled = false;
                        log.info("Prozent " + percent);
                   } catch (JMSException e) {
                        log.error(e);
              else {
                   log.error(message.toString() + " is no TextMessage");
         public void disable() {
              this.disabled = true;
    }Configuration:
    <?xml version='1.0' encoding='UTF-8'?>
    <weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
      <connection-factory name="dsdeConnectionFcatory">
        <default-targeting-enabled>true</default-targeting-enabled>
        <jndi-name>jms/dsdeConnectionFactory</jndi-name>
        <default-delivery-params>
          <default-delivery-mode>Persistent</default-delivery-mode>
          <default-time-to-deliver>0</default-time-to-deliver>
          <default-time-to-live>100</default-time-to-live>
          <default-priority>4</default-priority>
          <default-redelivery-delay>0</default-redelivery-delay>
          <send-timeout>10</send-timeout>
          <default-compression-threshold>2147483647</default-compression-threshold>
        </default-delivery-params>
        <client-params>
          <client-id-policy>Restricted</client-id-policy>
          <subscription-sharing-policy>Exclusive</subscription-sharing-policy>
          <messages-maximum>10</messages-maximum>
        </client-params>
        <transaction-params>
          <xa-connection-factory-enabled>true</xa-connection-factory-enabled>
        </transaction-params>
        <security-params>
          <attach-jmsx-user-id>false</attach-jmsx-user-id>
        </security-params>
      </connection-factory>
      <queue name="dsdeQueue">
        <sub-deployment-name>dsdeQueue</sub-deployment-name>
        <jndi-name>jms/dsdeQueue</jndi-name>
      </queue>
      <queue name="dsdeFeedbackQueue">
        <sub-deployment-name>dsdeFeedbackQueue</sub-deployment-name>
        <jndi-name>jms/dsdeFeedbackQueue</jndi-name>
      </queue>
      <queue name="dsdeBackQueue">
        <sub-deployment-name>dsdeBackQueue</sub-deployment-name>
        <jndi-name>jms/BackQueue</jndi-name>
      </queue>
    </weblogic-jms>Any help would be greatly appreciated.
    Thanks,
    Hans

    Thanks for posting your analysis!
    I think your solution is probably best.
    FYI: Your JMS session was never a "transacted" session. It's definitely confusing, but the term "transacted session" has a special meaning in JMS, it actually refers to a session that is not XA/JTA aware and instead maintains an internal local transaction that's scoped only to the current JMS session's operations. A transacted session is created by passing "true" to the first parameter of createSession, and such a session's local transaction is committed by calling session.commit() (which starts a new transaction). To further add to the confusion, I think that JEE servers are actually obligated to ignore requests to set the transacted flag to true -- WebLogic does this trick by secretly wrapping access to the JMS API when applications lookup JMS connection factories via a resource reference.
    Regards,
    Tom

  • Help setting up my first MDB JMS in websphere studio

    Hello gurus,
    In my servlet I have set the connection factory name to "jms/QCF" and queue to "jms/Q".
    * Under JMS tab I set the JMS Provider to MQ Simulator for Java Developers.
    * I set JMS Connection Factories name to jms/QCF and jndi value to jms/QCF.
    * Under JMS Destinations I set the Queue name to Q and jndi name to jms/Q
    * Under JMS Server Properties I added a queue Q since I set the Queue name to Q above.
    I send the message using QueueSender but the MDB is not receiving it..
    In my MDB I just have a print statement in the onMessage method but its not being fired..
    What am I doing wrong?
    Please help.

    Hello gurus,
    In my servlet I have set the connection factory name to "jms/QCF" and queue to "jms/Q".
    * Under JMS tab I set the JMS Provider to MQ Simulator for Java Developers.
    * I set JMS Connection Factories name to jms/QCF and jndi value to jms/QCF.
    * Under JMS Destinations I set the Queue name to Q and jndi name to jms/Q
    * Under JMS Server Properties I added a queue Q since I set the Queue name to Q above.
    I send the message using QueueSender but the MDB is not receiving it..
    In my MDB I just have a print statement in the onMessage method but its not being fired..
    What am I doing wrong?
    Please help.

  • JMS Adapter - Set Additional JMS Parameters or Replace Default Settings

    Hi colleagues,
    We are using PI/XI 7.0 (SP 12).
    In trying to set up a Communication Channel using JMS Adapter to connect to Oracle AQ, I do not see the checkbox "Set Additional JMS Parameters or Replace Default Settings" , nor is the table for the parameters / value visible.
    We have deployed the driver file as described in the How-to- guide: How To Install and Configure External Drivers for JDBC & JMS Adapters
    [http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/f04ce027-934d-2a10-5a8f-fa0b1ed4d88f?quicklink=index&overridelayout=true]
    In setting up the Communication Channel so far:
    Type: Sender
    Transport Protocol: Access JMS Provider Generically
    Message Protocol:  JMS 1.x
    Adapter Engine:      Integration Server
    After this I expect to see the checkbox  "Set Additional JMS Parameters or Replace Default Settings", but it is not there.
    Therefore I am not able to select it in order to enter parameters like:
    JMS.QueueConnectionFactoryImpl.classname
    JMS.QueueConnectionFactoryImpl.method.setHostName
    JMS.QueueImpl.classname
    JMS.QueueImpl.constructor.... etc
    Can someone please share if this because we are on too low SP or do we need to do something additional before it becomes visible?  Is this a feature that only became available as of PI/XI 7.0 SP 13 or 14 ?
    I checked both Sender and Receiver channel type, and it does not appear for both.
    Thanks & Cheers,
    Jodie

    Hi experts,
    We are using PI 7.1 and I've set up a communication Channel using JMS Adapter to send
    messages to a Sonic MQ queue.
    I need to send some values as JMS parameters, two of which are constants and two are values
    from the Sender message. I tried defining and setting up the parameters with constants values
    in the Communication Channel under the Advanced tab by selecting the check-box
    set Adapter-specific Message Attributes as follows:
    Name     TYPE
    ContentType     String
    ReturnValue     boolean
    Name     VAlue
    Contenttype     CompanyCode
    ReturnValute     true
    This however lead to an error in the Adapter Engine (RWB).
    My problem is:
    1. Can anyone please instruct me as to how to go about defining and setting up
       additional JMS parameters?
    2. How to go about defining/setting up variables that will get their values from
       the sender message?
    Thanks & Cheers,
    Joe

  • JMS cluster and happen JMS Queue Exception javax.naming.NameAlreadyBoundExc

    Hi,
    Sorry I not sure how to setup JMS cluster in WLS 10.3.2. We have two manager server in two machine. And will join into one cluster. After configure the JMS module & JMS server. We found it only can work in one server. And will faill in another server. And reply the error message as below :
    Any one can help to tell me why one server success. And other is fail !
    javax.naming.NameAlreadyBoundException: JMS_Queue_misdel_a is already bound; rem
    aining name ''
    at weblogic.jndi.internal.BasicNamingNode.bindHere(BasicNamingNode.java:357)
    at weblogic.jndi.internal.ServerNamingNode.bindHere(ServerNamingNode.java:140)
    at weblogic.jndi.internal.BasicNamingNode.bind(BasicNamingNode.java:317)
    at weblogic.jndi.internal.WLEventContextImpl.bind(WLEventContextImpl.jav
    ==> config for JMS
    <jms-server>
    <name>JMS_Server_cim_a</name>
    <target>ebowls05</target>
    <persistent-store xsi:nil="true"></persistent-store>
    <hosting-temporary-destinations>true</hosting-temporary-destinations>
    <temporary-template-resource xsi:nil="true"></temporary-template-resource>
    <temporary-template-name xsi:nil="true"></temporary-template-name>
    <message-buffer-size>-1</message-buffer-size>
    <expiration-scan-interval>30</expiration-scan-interval>
    </jms-server>
    <jms-server>
    <name>JMS_Server_cim_b</name>
    <target>ebowls06</target>
    <persistent-store xsi:nil="true"></persistent-store>
    <hosting-temporary-destinations>true</hosting-temporary-destinations>
    <temporary-template-resource xsi:nil="true"></temporary-template-resource>
    <temporary-template-name xsi:nil="true"></temporary-template-name>
    <message-buffer-size>-1</message-buffer-size>
    <expiration-scan-interval>30</expiration-scan-interval>
    </jms-server>
    <migratable-target>
    <name>ebowls06 (migratable)</name>
    <notes>This is a system generated default migratable target for a server. Do
    not delete manually.</notes>
    <user-preferred-server>ebowls06</user-preferred-server>
    <cluster>ebouatCluster</cluster>
    </migratable-target>
    <migratable-target>
    <name>ebowls05 (migratable)</name>
    <notes>This is a system generated default migratable target for a server. Do
    not delete manually.</notes>
    <user-preferred-server>ebowls05</user-preferred-server>
    <cluster>ebouatCluster</cluster>
    </migratable-target>
    <jms-system-resource>
    <name>JMS_ConnFactory_cim</name>
    <target>ebouatCluster</target>
    <descriptor-file-name>jms/JMS_ConnFactory_cim/JMS_ConnFactory_cim-jms.xml</d
    escriptor-file-name>
    </jms-system-resource>
    <jms-system-resource>
    <name>JMS_Queue_promis</name>
    <target>ebouatCluster</target>
    <sub-deployment>
    <name>JMS_Queue_promis@JMS_Server_cim_a</name>
    <target>JMS_Server_cim_a</target>
    </sub-deployment>
    <sub-deployment>
    <name>JMS_Queue_promis@JMS_Server_cim_b</name>
    <target>JMS_Server_cim_b</target>
    </sub-deployment>
    <descriptor-file-name>jms/JMS_Queue_promis/JMS_Queue_promis-jms.xml</descrip
    tor-file-name>
    </jms-system-resource>
    <jms-system-resource>
    <name>JMS_Template_cim</name>
    <target>ebouatCluster</target>
    <descriptor-file-name>jms/JMS_Template_cim/JMS_Template_cim-jms.xml</descrip
    tor-file-name>
    </jms-system-resource>
    <jms-system-resource>
    <name>JMS_Queue_misdel_a</name>
    <target>ebouatCluster</target>
    <sub-deployment>
    <name>JMS_Queue_misdel_a@JMS_Server_cim_a</name>
    <target>JMS_Server_cim_a</target>
    </sub-deployment>
    <sub-deployment>
    <name>JMS_Queue_misdel_a@JMS_Server_cim_b</name>
    <target>JMS_Server_cim_b</target>
    </sub-deployment>
    <descriptor-file-name>jms/JMS_Queue_misdel_a/JMS_Queue_misdel_a-jms.xml</des
    criptor-file-name>
    </jms-system-resource>
    <jms-system-resource>
    <name>JMS_Queue_misdel_b</name>
    <target>ebouatCluster</target>
    <sub-deployment>
    <name>JMS_Queue_misdel_b@JMS_Server_cim_a</name>
    <target>JMS_Server_cim_a</target>
    </sub-deployment>
    <sub-deployment>
    <name>JMS_Queue_misdel_b@JMS_Server_cim_b</name>
    <target>JMS_Server_cim_b</target>
    </sub-deployment>
    <descriptor-file-name>jms/JMS_Queue_misdel_b/JMS_Queue_misdel_b-jms.xml</des
    criptor-file-name>
    </jms-system-resource>

    1 - JMS clustering is an advanced concept, and, in most cases, uses "distributed queues". In case you haven't already, I highly recommend reading the JMS chapter of the new book "Professional Oracle WebLogic" as well as the related chapters in the JMS Programmer's Guide in the edocs.
    2 - The basic problem below is that you have two different queues that have matching JNDI names, but are in the same cluster.
    3 - The config snippet supplied below does not include the queue configuration. Queue configuration is embedded within the referenced module files.
    4 - Please ensure that you follow configuration best practices, as per: http://download.oracle.com/docs/cd/E15523_01/web.1111/e13738/best_practice.htm#CACJCGHG

  • WebLogic JMS client frozen during JMS connection stopping (race condition)

    Hello,
    Our application is using the WebLogic 10.3.1 JMS client generated with wlfullclient5.jar.
    We have sometimes a race condition when the WebLogic server is stopped.
    In about 10% of the cases where the server is stopped, the client application is frozen in the "stop" call (see stack trace #1 below).
    Our understanding is that each JMS API call by the application is translated by a request-response message on the TCP connection to the JMS server. The JMS library sends the request and then wait for the response. From our observations, it looks like there is no local timeout in the JMS library. This means that if the WebLogic server is being stopped just after receiving the "stop" request, it will never send the "stop" response, which means that the application will be stuck forever.
    The same problem also occurs when using JMS bridges between 2 JMS servers (see stack trace #2 below).
    How can we activate a local timeout for all JNDI/JMS calls ?
    Regards,
    metatech
    "AppThread" prio=3 tid=0x0000000100117800 nid=0x2 in Object.wait() [0xffffffff7befe000]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    at java.lang.Object.wait(Object.java:485)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.triggerPeerGoneAndWait(DispatcherWrapperState.java:607)
    - locked <0xffffffff7509aee8> (a weblogic.messaging.dispatcher.DispatcherWrapperState)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncTran(DispatcherWrapperState.java:349)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncNoTran(DispatcherWrapperState.java:386)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSync(DispatcherWrapperState.java:252)
    at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSync(DispatcherAdapter.java:43)
    at weblogic.jms.client.JMSConnection.stop(JMSConnection.java:758)
    - locked <0xffffffff7509a640> (a weblogic.jms.client.JMSConnection)
    at weblogic.jms.client.WLConnectionImpl.stop(WLConnectionImpl.java:722)
    at AppSession.closeJMSSession(ConnectorSession.java:499)
    "[ACTIVE] ExecuteThread: '12' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.jms.client.JMSXASession@1d363e4 WAITING
    java.lang.Object.wait(Native Method)
    java.lang.Object.wait(Object.java:485)
    weblogic.jms.client.JMSSession.waitForState(JMSSession.java:4778)
    weblogic.jms.client.JMSSession.stop(JMSSession.java:1310)
    weblogic.jms.client.JMSConnection.stop(JMSConnection.java:773)
    weblogic.jms.client.WLConnectionImpl.stop(WLConnectionImpl.java:722)
    weblogic.jms.adapter.JMSBaseConnection.closeInternal(JMSBaseConnection.java:570)
    weblogic.jms.adapter.JMSBaseConnection.access$000(JMSBaseConnection.java:85)
    weblogic.jms.adapter.JMSBaseConnection$2.run(JMSBaseConnection.java:552)

    Hi Tom,
    Thanks for looking at the issue.
    I tried to post the full thread dump as an attachment, but it is not allowed by the forum, so you find it hereunder.
    Regards,
    metatech
    =================
    2010-05-28 12:33:19
    Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.2-b01 mixed mode):
    "Attach Listener" daemon prio=3 tid=0x0000000100c5b800 nid=0x24 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "ExecuteThread: '0' for queue: 'JmsAsyncQueue'" daemon prio=3 tid=0x0000000100759800 nid=0x23 in Object.wait() [0xffffffff643ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:91)
         - locked <0xffffffff6f4ed828> (a weblogic.kernel.ServerExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:115)
    "Timer-0" daemon prio=3 tid=0x000000010078c800 nid=0x21 in Object.wait() [0xffffffff647ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         - waiting on <0xffffffff6f4ee2c0> (a java.util.TaskQueue)
         at java.lang.Object.wait(Object.java:485)
         at java.util.TimerThread.mainLoop(Timer.java:483)
         - locked <0xffffffff6f4ee2c0> (a java.util.TaskQueue)
         at java.util.TimerThread.run(Timer.java:462)
    "weblogic.timers.TimerThread" daemon prio=3 tid=0x00000001008e0000 nid=0x20 in Object.wait() [0xffffffff649ff000]
    java.lang.Thread.State: TIMED_WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at weblogic.timers.internal.TimerThread$Thread.run(TimerThread.java:267)
         - locked <0xffffffff6f4e75d0> (a weblogic.timers.internal.TimerThread)
    "ExecuteThread: '3' for queue: 'default'" daemon prio=3 tid=0x0000000100709000 nid=0x1e waiting for monitor entry [0xffffffff65afe000]
    java.lang.Thread.State: BLOCKED (on object monitor)
         at weblogic.jms.client.JMSConnection.stateChangeListener(JMSConnection.java:1413)
         - waiting to lock <0xffffffff7509a640> (a weblogic.jms.client.JMSConnection)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.run(DispatcherWrapperState.java:682)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.timerExpired(DispatcherWrapperState.java:617)
         at weblogic.timers.internal.TimerImpl.run(TimerImpl.java:273)
         at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
    "ExecuteThread: '2' for queue: 'default'" daemon prio=3 tid=0x000000010055c800 nid=0x1d in Object.wait() [0xffffffff65cff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:91)
         - locked <0xffffffff6f427a80> (a weblogic.kernel.ServerExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:115)
    "ExecuteThread: '1' for queue: 'default'" daemon prio=3 tid=0x000000010055c000 nid=0x1c in Object.wait() [0xffffffff65eff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:91)
         - locked <0xffffffff6f427da0> (a weblogic.kernel.ServerExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:115)
    "ExecuteThread: '0' for queue: 'default'" daemon prio=3 tid=0x00000001006fa800 nid=0x1b in Object.wait() [0xffffffff660ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.kernel.ExecuteThread.waitForRequest(ExecuteThread.java:91)
         - locked <0xffffffff6f4280c0> (a weblogic.kernel.ServerExecuteThread)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:115)
    "StateHolder" daemon prio=3 tid=0x0000000100584800 nid=0x1a waiting on condition [0xffffffff66aff000]
    java.lang.Thread.State: TIMED_WAITING (sleeping)
         at java.lang.Thread.sleep(Native Method)
         at StateHolder.run(StateHolder.java:80)
         at java.lang.Thread.run(Thread.java:619)
    "Thread-1" daemon prio=3 tid=0x0000000100554000 nid=0x18 waiting on condition [0xffffffff66cff000]
    java.lang.Thread.State: TIMED_WAITING (sleeping)
         at java.lang.Thread.sleep(Native Method)
         at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:104)
    "Low Memory Detector" daemon prio=3 tid=0x00000001003d3800 nid=0x16 runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "CompilerThread1" daemon prio=3 tid=0x00000001003cf000 nid=0x15 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "CompilerThread0" daemon prio=3 tid=0x00000001003cd800 nid=0x14 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "Signal Dispatcher" daemon prio=3 tid=0x00000001003cb800 nid=0x13 runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE
    "Finalizer" daemon prio=3 tid=0x00000001003a4800 nid=0x12 in Object.wait() [0xffffffff680ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
         - locked <0xffffffff6f4c7670> (a java.lang.ref.ReferenceQueue$Lock)
         at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
         at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
    "Reference Handler" daemon prio=3 tid=0x00000001003a3000 nid=0x11 in Object.wait() [0xffffffff682ff000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
         - locked <0xffffffff6f401370> (a java.lang.ref.Reference$Lock)
    "Worker" prio=3 tid=0x0000000100117800 nid=0x2 in Object.wait() [0xffffffff7befe000]
    java.lang.Thread.State: WAITING (on object monitor)
         at java.lang.Object.wait(Native Method)
         at java.lang.Object.wait(Object.java:485)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.triggerPeerGoneAndWait(DispatcherWrapperState.java:607)
         - locked <0xffffffff7509aee8> (a weblogic.messaging.dispatcher.DispatcherWrapperState)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncTran(DispatcherWrapperState.java:349)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncNoTran(DispatcherWrapperState.java:386)
         at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSync(DispatcherWrapperState.java:252)
         at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSync(DispatcherAdapter.java:43)
         at weblogic.jms.client.JMSConnection.stop(JMSConnection.java:758)
         - locked <0xffffffff7509a640> (a weblogic.jms.client.JMSConnection)
         at weblogic.jms.client.WLConnectionImpl.stop(WLConnectionImpl.java:722)
         at ConnectorSession.closeJMSSession(ConnectorSession.java:499)
         at ConnectorSession.receiveRequest(ConnectorSession.java:617)
         at ConnectorSession.processRequest(ConnectorSession.java:341)
         at Worker.mainApplication(Worker.java:127)
         at Worker.mainMethod(Worker.java:298)
         at Worker.main(Worker.java:163)
    "VM Thread" prio=3 tid=0x000000010039c800 nid=0x10 runnable
    "GC task thread#0 (ParallelGC)" prio=3 tid=0x000000010011b000 nid=0x3 runnable
    "GC task thread#1 (ParallelGC)" prio=3 tid=0x0000000100121000 nid=0x4 runnable
    "GC task thread#2 (ParallelGC)" prio=3 tid=0x0000000100122800 nid=0x5 runnable
    "GC task thread#3 (ParallelGC)" prio=3 tid=0x0000000100126000 nid=0x6 runnable
    "GC task thread#4 (ParallelGC)" prio=3 tid=0x0000000100127800 nid=0x7 runnable
    "GC task thread#5 (ParallelGC)" prio=3 tid=0x0000000100129000 nid=0x8 runnable
    "GC task thread#6 (ParallelGC)" prio=3 tid=0x000000010012b000 nid=0x9 runnable
    "GC task thread#7 (ParallelGC)" prio=3 tid=0x000000010012c800 nid=0xa runnable
    "GC task thread#8 (ParallelGC)" prio=3 tid=0x000000010012e000 nid=0xb runnable
    "GC task thread#9 (ParallelGC)" prio=3 tid=0x000000010012f800 nid=0xc runnable
    "GC task thread#10 (ParallelGC)" prio=3 tid=0x0000000100131800 nid=0xd runnable
    "GC task thread#11 (ParallelGC)" prio=3 tid=0x0000000100133000 nid=0xe runnable
    "GC task thread#12 (ParallelGC)" prio=3 tid=0x0000000100134800 nid=0xf runnable
    "VM Periodic Task Thread" prio=3 tid=0x00000001003d5800 nid=0x17 waiting on condition
    JNI global references: 818

  • JMS Adapter Configuration (Access JMS Provider Generically)

    Hi Exports,
    How can i configure JMS adapter Using Access JMS Provider Generically, where can we mentioned target server. there is Quename and username and password but there is no target server details field. could you please give me suggetion how to configure this.

    Hi,
    This will help you
    JMS Adapter
    /people/kan.th/blog/2007/02/05/exploring-jms-and-sap-xi-jms-adaper
    http://help.sap.com/saphelp_nw2004s/helpdata/en/cd/d85a9d6fab7d4dbb7ae421f710626c/content.htm
    Sender Jms Adapter
    http://help.sap.com/saphelp_nw2004s/helpdata/en/f4/2d6189f0e27a4894ad517961762db7/content.htm
    Receiver Jms Adapter
    http://help.sap.com/saphelp_nw2004s/helpdata/en/10/b1b4c8575a6e47954ad63438d303e4/content.htm
    Regards
    Agasthuri Doss

Maybe you are looking for

  • I misspelled my password when I changed it and now I don't know what it is

    I was going to change my password and I ended up mispelling it - not just once but twice (when you verify it). So it is now successfully changed but changed to what? I don't know - Is there any fail safe for a master password? I need it so I can down

  • How to use Webservice in Visual composer

    Hi, We have developed a RFC in R3 and converted it into Webservice. We want to use this in the Visual composer. Can anyone suggest some steps how to use this RFC in Visual composer? I tried the option in Tools--> Define webservice System and gave the

  • Web DynPro Adaptive RFC proxies configuration

    Hi, When using Adaptive RFC proxies to call BAPIs in my Web DynPro application I need to go to the content management web interface (localhost:50000/webdynpro/welcome) to set them up. How can I automate this configuration for, say, quick deployment o

  • Can't publish a GIF animation..

    hey guys, im really lost here... i been trying to publish a little animation as .GIF but all im getting is a picture, with color blotches everywhere.. I've read the HELP files, but even by doing what they say, im still getting the same results.. can

  • Pegging with characteristics

    Is it possible that pegging between production orders and requirements take into account their characteristic values? For example if the characteristic "width" is 2600 for the production order and 2000 for the requirement then these wouldn't peg? My