JMS Queue listener vs. manual/scheduled executions

Hello,
We have configured interfaces, packages, scenarios, etc. that start with pulling an XML message from a JMS queue (well, JMS Queue XML data store) and can successfully process our messages in batch mode when we run our executions manually or via a scheduler. However, we'd like our agent to simply listen on the queue for new messages and kick off an execution when a new message comes in...one-by-one (rather than in a batch manual/scheduled mode).
Can someone please help us with the proper configuration steps for this?
Thanks!

I am investigating this issue myself.   I have come up with two possible scenarios.
1.  Do it in Java -- Of course this defeats the purpose of using SOA Suite.  In the book SOA Suite 11g handbook, chapter twelve he has a jms adapter publishing to a queue and a java program listening to that queue.    http://technology.amis.nl/2010/09/21/soa-suite-11g-handbook-chapter-complements/
you can refer to the TheFinancialApplication.
2.  If you have access to the Jms programs that publish the messages to the queue (that your programs want to listen to) and they are done in SOA Suite 11g, you could use Event Delivery Network (EDN) to create a event on the publishing side-- and then set up your listening processes to listen for that Event (which is jms under the hood).
You could then have those processes kick off from that event.
Anyone with a better idea?
-- Update 8 hours later  -- I have a better idea:
I created a composite that publishes a JMS message to a queue on weblogic using the jms adapter.  I created a second composite with a jms adapter (on the Exposed services side of the composite)  that Consumes a message, hooked it up to a mediator and then wrote the contents of the message to a file.  Uploaded both.
Moments after the JMS publisher Composite ran, a file was created.  From this I would surmise that you could run other processes as well.
-- Update two days later.   So much for the better idea.
Given that the Flow Trace of the last test looked suspiciously like this one one application and not two separate applications, I decided to test it further.  I have two PCs.  On each PC I have a soa domain, Uploaded the jms publisher to one domain, and the JMS Consumer to the other separate domain on the other PC.   Ran the publisher, and the other one just sat still -- didn't start at all.
The first test was too good to be true!
Stuart

Similar Messages

  • OC4J/JMS Queue Listener

    Hello,
    Have a simple test JMS client that is listening for messages posted to a JMS queue setup in the OC4J/JMS. While the messages are ending up in the proper queues [this can be verified via a queue browser] the listener does not seem to be getting any notifications. The receiver code is essentially,
    queueConnection = queueConnectionFactory.createQueueConnection();
    QueueSession queueSession = queueConnection.createQueueSession(
                             false,
                             Session.AUTO_ACKNOWLEDGE);
    QueueReceiver queueReceiver = queueSession.createReceiver(queue);
    System.out.println("Set Listener");
    queueReceiver.setMessageListener(new OracleListener());
    queueConnection.start();
    This is from a remote client for both the sender and the reciever. Any help would be much appreciated.
    Vinay Menon

    I am investigating this issue myself.   I have come up with two possible scenarios.
    1.  Do it in Java -- Of course this defeats the purpose of using SOA Suite.  In the book SOA Suite 11g handbook, chapter twelve he has a jms adapter publishing to a queue and a java program listening to that queue.    http://technology.amis.nl/2010/09/21/soa-suite-11g-handbook-chapter-complements/
    you can refer to the TheFinancialApplication.
    2.  If you have access to the Jms programs that publish the messages to the queue (that your programs want to listen to) and they are done in SOA Suite 11g, you could use Event Delivery Network (EDN) to create a event on the publishing side-- and then set up your listening processes to listen for that Event (which is jms under the hood).
    You could then have those processes kick off from that event.
    Anyone with a better idea?
    -- Update 8 hours later  -- I have a better idea:
    I created a composite that publishes a JMS message to a queue on weblogic using the jms adapter.  I created a second composite with a jms adapter (on the Exposed services side of the composite)  that Consumes a message, hooked it up to a mediator and then wrote the contents of the message to a file.  Uploaded both.
    Moments after the JMS publisher Composite ran, a file was created.  From this I would surmise that you could run other processes as well.
    -- Update two days later.   So much for the better idea.
    Given that the Flow Trace of the last test looked suspiciously like this one one application and not two separate applications, I decided to test it further.  I have two PCs.  On each PC I have a soa domain, Uploaded the jms publisher to one domain, and the JMS Consumer to the other separate domain on the other PC.   Ran the publisher, and the other one just sat still -- didn't start at all.
    The first test was too good to be true!
    Stuart

  • Proxy Service listening a JMS Queue

    HI all,
    I have a simple question.
    I have an web application that write a message into a JMS Queue.
    I wanna know if when a message arrives into a JMSQueue an ESB proxy can listen this queue, get the message and afterwards process it.
    Thanks and Regards!

    Hi,
    In ALSB 2.6 its very much possible. Create a proxy Service (Any XML Service) configure your endpoint to the queue. provide correct Url, Connection factory JNDI and queue JNDI to the endpoint.
    Hope this helps you.
    ~Anup

  • Mbean that listen for jms queue messages

    Hi to all,
              I must use a Jmx notification listener architecture to trap when a new message arrives (i must also handle the message content) in a weblogic jms queue.
              Do you know which mbean could help me to observe the new ariving message?
              In the javadocs i cant' find any useful mbean to do that..
              Thanks

    Hi to all,
              I must use a Jmx notification listener architecture to trap when a new message arrives (i must also handle the message content) in a weblogic jms queue.
              Do you know which mbean could help me to observe the new ariving message?
              In the javadocs i cant' find any useful mbean to do that..
              Thanks

  • Stop MDB from listening to a JMS queue

    Hello,
    From time to time we would like to stop the processing done in our application.
    The processing is started by onMessage() in MDB. Is it possible to tell the MDB
    to stop listening
    to the JMS queue or stop the delivery of messages by JMS ? We do not intent to
    stop the processing of messages that have already started by only to stop processing
    of further messages (the ones still in the JMS queue).
    We are using 6.1SP3.
    Any help is appreciated.
    Eric Poupaert,
    Approach Belgium SA.

    If you can tune the number of messages that should be sent to the MDB to 0, that would
    temporarily stop the MDB from consuming messages. Thsi is the "Messages maximum"
    parameter on ur connectionfactory. WL6 doesnt support changing this value to 0 but there
    were some newsgroup discussions last year that it might be supported in a future
    release. Maybe its fixed in 8?
    Eric Poupaert wrote:
    Hello,
    From time to time we would like to stop the processing done in our application.
    The processing is started by onMessage() in MDB. Is it possible to tell the MDB
    to stop listening
    to the JMS queue or stop the delivery of messages by JMS ? We do not intent to
    stop the processing of messages that have already started by only to stop processing
    of further messages (the ones still in the JMS queue).
    We are using 6.1SP3.
    Any help is appreciated.
    Eric Poupaert,
    Approach Belgium SA.

  • How to manually flush jms queue

    hi,
              we have some transaction which is stuck in a JMS queue and we want to forcibly clear it from queue.
              please let me know how to go for this
              thanks

    Does anyone know how to publish a JMS queue? Thanks.Yes, I do. But rather than write a long posting describing how to use the JMS API. I'd like to invite you to read the JMS tutorial:
    http://download.oracle.com/javaee/1.3/jms/tutorial/index.html
    Look particularly at
    http://download.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/client.html
    Nigel

  • JMS Queue monitoring

    Hi everyone,
    is there any way to monitor a jms queue with its contained messages ? i'm talking about a tool like the jmx console in jboss - the JMS Adapter and JMS Notification in the Visual Admin only provide some properties.
    Any suggestions ?

    Hi,
    In short what you want (sending email in case message has stayed too long time in the queue), is NOT possible directly. That's not a standard feature by the JMS spec.   
    What is possible is the is so-called dead messages, once the acknowledgment fails the predefined number of times then the messages will be redirected to a special queue. From there the messages can be exported by telnet.
    Check SAP note 777930 for more info. Btw, it might be a good idea to get familiar with that note, otherwise if the external server let's say always throws an exception while processing the message, it will be moved to this special queue and unless someone issues the appropriate telnet commands, nobody will understand about this.
    However if you disable this  feature, that will mean that the message will be delivered endlessly, causing CPU load. Not nice if you have doubts in your external listeners.                                                                               
    Now about the queue monitoring :
    You could create manually a periodic task (EJB timers in J2EE 1.4 which is covered in the prerelease of the next server version, or if you are using Netweaver 04s or 04s than perhaps java.util.Timer) that will periodically open a JMS browser, check the  messages in the queue, if they have stayed too long time (>100 seconds for example ?) or if the queue is too big (>100 messages) you can send manually the email alert that something has went wrong. By usage of the JAVA API that should be simple
    Another thing you can do is that inside your external listeners and the onMessage method, you could check manually the number of times the message is redelivered, if it is above some threshold (i.e . if it is 3, that means the SAP server has delivered the message 3 times , since the listener have rejected it 2 times already),then you can send the email via the standard java API. The delivery count can be retrieved by using the standard optional property JMSXDeliveryCount from the message.                                                      
    HTH
    Peter

  • How to configure my JMS QUEUE serve only one message at a time?

    Hi All,
    I have requirement where I need to develope a JMS QUEUE in weblogic. This MDB has to serve only one message at a time. Is there any way to configure via annotations or in weblogic server settings ?
    Any help would be really appreciated...
    Thank you,
    K.

    I'm not aware of any way to configure the max pool size via annotations, you might try posting to the EJB newsgroup (please post back the answer). Of course you can set the size via an EJB descriptor, as per the MDB chapter of the Performance and Tuning guide in the edocs.
    By the way, if you have ordered message processing requirements, I highly recommend taking a look at the WebLogic JMS "Unit-of-Order" (UOO) feature as per the UOO chapter of the JMS programmer's guide. For a variety of reasons, the UOO features is often, by far, the best option for handling such requirements. If this feature applies to your use case, then there would be no need to force single threaded message processing in some sort of manual fashion (the feature enforces this for you).
    Tom

  • How to keep a back up of messages from the JMS queues?

    Hi,
    I need to keep a back up of messages which are coming in the JMS queue before they get consumed. This is for recovery purpose.
    I checked file store option but it doesnt have any time stamp on messages so dont know how to trace back messges if needed from file store.
    Please let me know if you guys have any idea to handle this.
    Thanks in advance
    Bips

    No. Not with Time Machine at least.
    If you tell Time Machine to backup the external then you will have it.
    Or you can manually copy it to another disk for storage outside of Time Capsule/TimeMachine.
    Allan

  • How to send to Weblogic 9.1 JMS queue from EJB running in Glassfish?

    Hi.
    I hope this is the correct forum.
    I need to send a message to a jms queue on a remote weblogic 9.1 server. To this end I believe I will have to:
    1) Install one or more weblogic client libraries/jar files on my glassfish application server. The weblogic server expects communication in the "t3" protocol, which I believe tunnels iiop, jms etc. inside their own proprietary protocol
    2) Define the jms queue in my glassfish application server with a queue connection factory that creates the queue using classes from the weblogic jars?
    3) Otherwise code the EJB methods sending messages as I would code and send messages to any jms queue
    It's the first two steps that have me baffled. The more I dig in glassfish administrator's manual, the more confused I become.
    Anybody have any idea if/how this can be accomplished?
    Some reference to where I may find information as to how to accomplish this?
    Thank you,
    Jacob.

    Jacob,
    I suggest you try, either a GlassFish forum (http://forums.java.net/jive/forum.jspa?forumID=56), or perhaps the GenericJMSRA project https://genericjmsra.dev.java.net .This forum is primarily about the Sun JMS provider, Java MQ or Open MQ -- or the JMS Specification.
    -- Ed Bratt

  • How to configure JMS queue on OC4J server. Development in JDeveloper 10G

    Hi there,
    I have to configure a JMS for an Asynchronous process in my Application which will be running in Oracle 10G Application Server. Development Environment is Oracle JDeveloper 10G.
    I am facing a problem on how to configure JMS queue.
    Steps Followed are:
    in the <JDevloperHome>/j2ee/home/config
    1. Made the new queue and connection factory's JMS entry in jms.xml.
    2. Specifed the queue in oc4j-connectors.xml.
    3. played around with application.xml
    and tried all combinations, but the message producer always failed to lookup the queue.
    Need help on the steps to follow so that the producer can post the message in the queue.
    Also please help how to configure the MDB to listen to the queue.
    Thanx and Regards
    Subham

    If you were dealing with Oracle 10g app server as opposed to standalone, I might be better able to help you.
    One thing though, when you are configuring your MDB in the orion-ejb-jar.xml file, do not forget to specify attribute listener-threads, otherwise no matter how many beans you have in your MDB pool, only one bean will be listening to the queue. Many listener-threads equal to max number of beans in pool.

  • OWB Workflow Queue Listener

    Hi ,
    We are trying to schedule the OWB 3i mappings using OEM 2.2 and Workflow 2.6.2.We have a queue listener 'workflowqlsnr.bat' on the client side,but we need to have the Workflow Queue Listenter on the Server side.Please let me know what is the procedure in order to deploy the listener.sh in the server(Unix).
    I have the following file installed in my owb3i\owb\bin\solaris directory on Windows 2000 -- workflowqlsnr.sh,workflowqlsnr1.sh.
    Environment:
    OWB 3i Client ( Windows 2000).
    Server OS: Sun Solaris
    Database : 8.1.7.3
    OEM 2.2
    OWF 2.6.2 Server/Client.
    Thanks for the help.
    Sharad.

    I am facing a problem in DB Link creation.
    Backend: Oracle 8i Server on my machine
    DW Software: Oracle warehouse builder 3i ( client , repository asistant.....)
    Operating system: Windows NT 4 SERVICE PACK 6
    I wants to use the scott database( default database given by oracle ) as my input source.
    How can I create the DB LINK ( for scott database) ?
    How can I create the DB LINK ( for any other database) ?
    Should I need to add anything in Setting of"ODBC DATASOURCE ADMINISTRATION"
    ==================
    Settings done:
    ==================
    DB Link Name :prashant
    Host name
    Host name: my machine's ip address
    port number: 1521
    oracle sid: prashant ( my oracle sid)
    user name:scott
    password:tiger
    ==================
    Gives error:
    ==================
    Testing...
    Failed.
    Cwm Error Message: Failed in the WBAPIFactory.createDBLink()
    Cwm Error: SQL Exception
    Class Name: oracle.wh.ui.integrator.common.RepositoryUtils
    Method Name: createDBLink(String, String, String, String)
    Method Name: -1
    Repository Error Message: java.sql.SQLException: ORA-02082: a loopback database link must have a connection qualifier
    ==================
    ==================
    How should I proceed further.
    I am expecting URGENT FEEDBACK.
    Reply me on : [email protected] or this OTN Network
    From
    Prashant

  • MDBs in 9.1 continue to consume JMS queues even after being deleted

    <b>We have an MDB application that reads a batch message off of a JMS queue, archives it in a database, parses the batch message into individual messages and writes them onto other JMS queues to be consumed by another application. Everything was running fine in Weblogic 8.1.5. However, due to problems with XA drivers and the MSDTC(predictable SQL server crashes), we decided to upgrade to Weblogic 9.1 to take advantage of the LLR option.</b>
              <b>First, we had an issue where our MDBs were causing the following exception:</b>
              <i>####<May 26, 2006 7:42:12 PM EDT> <Error> <JMX> <ist-clft2> <wltest1> <ExecuteThread: '1' for queue: 'default'> <<WLS Kernel>> <> <> <1148686932991> <BEA-149500> <An exception occurred while registering the MBean null.
              java.lang.IllegalArgumentException: Registered more than one instance with the same objectName : com.bea:ServerRuntime=wltest1,MessageDrivenEJBRuntime=RhapsodyMDB_DMBModule!JMSServer4@DMB_BEAN_QUEUE,Name=RhapsodyMDB_DMBModule!JMSServer4@DMB_BEAN_QUEUE,ApplicationRuntime=DataBrokerEAR1_2,Type=EJBPoolRuntime,EJBComponentRuntime=DataBrokerEJB new:[email protected] existing weblogic.ejb.container.monitoring.EJBPoolRuntimeMBeanImpl@7db003
                   at weblogic.management.jmx.ObjectNameManagerBase.registerObject(ObjectNameManagerBase.java:146)
                   at weblogic.management.mbeanservers.internal.WLSObjectNameManager.lookupObjectName(WLSObjectNameManager.java:133)
                   at weblogic.management.jmx.modelmbean.WLSModelMBeanFactory.registerWLSModelMBean(WLSModelMBeanFactory.java:86)
                   at weblogic.management.mbeanservers.internal.RuntimeMBeanAgent$1.registered(RuntimeMBeanAgent.java:104)
                   at weblogic.management.provider.internal.RegistrationManagerImpl.invokeRegistrationHandlers(RegistrationManagerImpl.java:205)
                   at weblogic.management.provider.internal.RegistrationManagerImpl.register(RegistrationManagerImpl.java:85)
                   at weblogic.management.runtime.RuntimeMBeanDelegate.register(RuntimeMBeanDelegate.java:320)
                   at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:257)
                   at weblogic.management.runtime.RuntimeMBeanDelegate.<init>(RuntimeMBeanDelegate.java:222)
                   at weblogic.ejb.container.monitoring.EJBPoolRuntimeMBeanImpl.<init>(EJBPoolRuntimeMBeanImpl.java:32)
                   at weblogic.ejb.container.monitoring.MessageDrivenEJBRuntimeMBeanImpl.<init>(MessageDrivenEJBRuntimeMBeanImpl.java:49)
                   at weblogic.ejb.container.manager.MessageDrivenManager.initialize(MessageDrivenManager.java:503)
                   at weblogic.ejb.container.manager.MessageDrivenManager.setup(MessageDrivenManager.java:120)
                   at weblogic.ejb.container.manager.MessageDrivenManager.setup(MessageDrivenManager.java:146)
                   at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.createMDManager(MessageDrivenBeanInfoImpl.java:1481)
                   at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.createDDMDManagers(MessageDrivenBeanInfoImpl.java:1378)
                   at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.onDDMembershipChange(MessageDrivenBeanInfoImpl.java:1285)
                   at weblogic.jms.common.CDS$DD2Listener.listChange(CDS.java:454)
                   at weblogic.jms.common.CDSServer$DDHandlerChangeListener.statusChangeNotification(CDSServer.java:167)
                   at weblogic.jms.dd.DDHandler.callListener(DDHandler.java:318)
                   at weblogic.jms.dd.DDHandler.callListeners(DDHandler.java:344)
                   at weblogic.jms.dd.DDHandler.run(DDHandler.java:282)
                   at weblogic.jms.common.SerialScheduler.run(SerialScheduler.java:37)
                   at weblogic.work.ExecuteRequestAdapter.execute(ExecuteRequestAdapter.java:21)
                   at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:145)
                   at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:117)
              >
              ####<May 26, 2006 7:42:13 PM EDT> <Info> <EJB> <ist-clft2> <wltest1> <ExecuteThread: '1' for queue: 'default'> <<WLS Kernel>> <> <> <1148686933069> <BEA-010060> <The Message-Driven EJB: RhapsodyMDB has connected/reconnected to the JMS destination: weblogic.jms.DMB_BEAN_QUEUE.></i>
              <b>
              Generally this happend after there were cluster communication issues. Multi-cast messages were lost and our MDB reconnects to the JMS queues as indicated by the below log:</b>
              <i>####<May 30, 2006 5:19:06 PM EDT> <Info> <EJB> <AMTC-RAP-STG3> <RAPBEA1S> <[ACTIVE] ExecuteThread: '54' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1149023946040> <BEA-010060> <The Message-Driven EJB: DataBrokerMDB has connected/reconnected to the JMS destination: weblogic.jms.PHINMS_DMB_QUEUE.>
              ####<May 30, 2006 5:19:10 PM EDT> <Info> <Cluster> <AMTC-RAP-STG3> <RAPBEA1S> <[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1149023950228> <BEA-000112> <Removing RAPBEA3S jvmid:720875810499147484S:cmts-rap-bea3:[7005,-1,-1,-1,-1,-1,-1]:DMBstg:RAPBEA3S from cluster view due to timeout.>
              ####<May 30, 2006 5:19:11 PM EDT> <Info> <Cluster> <AMTC-RAP-STG3> <RAPBEA1S> <[STANDBY] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1149023951009> <BEA-000115> <Lost 2 multicast message(s).>
              ####<May 30, 2006 5:19:11 PM EDT> <Info> <Cluster> <AMTC-RAP-STG3> <RAPBEA1S> <[ACTIVE] ExecuteThread: '22' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1149023951040> <BEA-000111> <Adding RAPBEA3S with ID 720875810499147484S:cmts-rap-bea3:[7005,-1,-1,-1,-1,-1,-1]:DMBstg:RAPBEA3S to cluster: DMBstg_cluster view.></i>
              <b>
              This would cause the queues to eventually have hundreds of consumers and cause the server to fail.
              Basically, it seems as though the MDBs that are supposed to stop continue and attempt to process, while new threads connect to the JMS queues.
              I tried undeploying our application and deleted it from the configuration. However there were consumers still on the respective queues and when I sent messages, I got an error indicating a "Class Not Found exception" due to the fact that the EJB was undeployed and deleted from the configuration, however the MDB component was not and continued to listen for messages. In 8.1.5, as soon as the application was undeployed, there were zero consumers on the JMS queues.
              I have read the posts about a soon to be released fix that would have the MDBs connect only to the queues locally and not go out the the cluster. Would this fix my issue?
              Is there something in the deployment descriptor to configure that will cause it to disconnect and now spawn so many consumers to the JMS queues?
              Why is it that the number of MDB consumers on the JMS queues stayed static in 8.1.5, but they are erratic in 9.1 even after I set our 9.1 server to use the 8.1.5 execute queue policy. Help would be much appreciated.</b>

    I recommend contacting customer support. There's a known problem with MDBs listening to distributed destinations that are local to the same cluster as the MDB, you're problem may be related (the clue is that the stack trace contains jms.dd.DDHandler.callListeners()). The problem is that the MDB connects to all physical queues in a distributed destination rather than just the local queue.
              Tom

  • Exception in the XML consuming from JMS Queue

    In the CEP application we have a business flow like we want to consume an xml message from the JMS queue.
    While CEP is consuming the message sometimes we are getting an exception.
    But this issue occurs rarely and we have no idea about the root cause.
    I am attaching the trace of this exception.
    It seems this exception is from weblogic server itself.
    Also this could be an interface problem, since its showing a casting error.
    The Bug description:
    When we send a meter event through SOAP UI in the CEP visualizer when the event is consumed CEP also shows this exception.
    This may not halt the analysis process of the event, but this unwanted piece of code/lines have to be avoided.
    <OutageEvent xmlns:ns1="http://www.accenture.com/INDE"; xmlns:wsa="http://www.w3.org/2005/08/addressing"; xmlns="http://www.accenture.com/INDE"><meterId xmlns="">203</meterId><outageType xmlns="">Permanent Outage</outageType><premiseId xmlns="">1111</premiseId><timeEvent xmlns="">2010-07-30T</timeEvent><heName xmlns="">SAMPLEHE</heName></OutageEvent>
    <Jul 30, 2010 11:01:50 AM IST> <Error> <JMSAdapter> <BEA-2041118> <Setup for JMS task for destination JMS_OI_MeterState_MeterEvent_Queue at provider t3://10.212.182.30:8002 failed with exception: weblogic.jms.common.JMSException: [JMSClientExceptions:055039]A system error has occurred. The error is java.lang.ClassCastException: weblogic.workarea.StringWorkContext
    weblogic.jms.common.JMSException: [JMSClientExceptions:055039]A system error has occurred. The error is java.lang.ClassCastException: weblogic.workarea.StringWorkContext
    at weblogic.jms.client.JMSSession.handleException(JMSSession.java:3121)
    at weblogic.jms.client.JMSConsumer.receiveInternal(JMSConsumer.java:650)
    at weblogic.jms.client.JMSConsumer.receive(JMSConsumer.java:526)
    at weblogic.jms.client.WLConsumerImpl.receive(WLConsumerImpl.java:184)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveMessage(AbstractPollingMessageListenerContainer.java:405)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:308)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
    at com.bea.core.asyncbeans.internal.DefaultMessageListenerContainer.receiveAndExecute(DefaultMessageListenerContainer.java:59)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
    at com.bea.core.asyncbeans.internal.WorkManagerTaskExecutor$1.run(WorkManagerTaskExecutor.java:38)
    at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused By: java.lang.ClassCastException: weblogic.workarea.StringWorkContext
    at weblogic.rjvm.MsgAbbrevInputStream.readContext(MsgAbbrevInputStream.java:243)
    at weblogic.workarea.spi.WorkContextEntryImpl.<init>(WorkContextEntryImpl.java:47)
    at weblogic.workarea.spi.WorkContextEntryImpl.readEntry(WorkContextEntryImpl.java:97)
    at weblogic.workarea.WorkContextLocalMap.receiveRequest(WorkContextLocalMap.java:151)
    at weblogic.jms.common.JMSWorkContextHelper.readWorkContext(JMSWorkContextHelper.java:89)
    at weblogic.jms.common.MessageImpl.readExternal(MessageImpl.java:2275)
    at weblogic.jms.common.TextMessageImpl.readExternal(TextMessageImpl.java:354)
    at weblogic.jms.common.JMSConsumerReceiveResponse.readExternal(JMSConsumerReceiveResponse.java:133)
    at weblogic.messaging.dispatcher.DispatcherObjectHandler.readResponse(DispatcherObjectHandler.java:154)
    at weblogic.messaging.dispatcher.DispatcherProxy.unmarshalResponse(DispatcherProxy.java:269)
    at weblogic.messaging.dispatcher.DispatcherProxy.dispatchSyncTranFuture(DispatcherProxy.java:134)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncTran(DispatcherWrapperState.java:338)
    at weblogic.messaging.dispatcher.DispatcherWrapperState.dispatchSyncNoTran(DispatcherWrapperState.java:386)
    at weblogic.jms.dispatcher.DispatcherAdapter.dispatchSyncNoTran(DispatcherAdapter.java:59)
    at weblogic.jms.client.JMSSession.receiveMessage(JMSSession.java:886)
    at weblogic.jms.client.JMSConsumer.receiveInternal(JMSConsumer.java:647)
    at weblogic.jms.client.JMSConsumer.receive(JMSConsumer.java:526)
    at weblogic.jms.client.WLConsumerImpl.receive(WLConsumerImpl.java:184)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveMessage(AbstractPollingMessageListenerContainer.java:405)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.doReceiveAndExecute(AbstractPollingMessageListenerContainer.java:308)
    at org.springframework.jms.listener.AbstractPollingMessageListenerContainer.receiveAndExecute(AbstractPollingMessageListenerContainer.java:261)
    at com.bea.core.asyncbeans.internal.DefaultMessageListenerContainer.receiveAndExecute(DefaultMessageListenerContainer.java:59)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:982)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:974)
    at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:876)
    at com.bea.core.asyncbeans.internal.WorkManagerTaskExecutor$1.run(WorkManagerTaskExecutor.java:38)
    at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    >
    11:01:50,548 INFO MeterInputConverter : 81 - Accepted the input xml :<?xml version="1.0" encoding="UTF-8" ?><MeterEvent xmlns:inde="http://www.accenture.com/INDE"; xmlns:wsa="http://www.w3.org/2005/08/addressing"; xmlns="http://www.accenture.com/INDE">;
    <meterId xmlns="">103</meterId>
    <outageType xmlns="">RESUME</outageType>
    <premiseId xmlns="">1111</premiseId>
    <timeEvent xmlns="">2010-07-30T</timeEvent>
    <lastGasp xmlns="">false</lastGasp>
    <heName xmlns="">CURRENT</heName>
    </MeterEvent>

    Hi,
    I will forward this to the weblogic JMS team, to see if they have any insight for us.
    Regards,
    Seth

  • B2B 11g - Managing File name from a JMS queue.

    Hi,
    I have configured a Listening Channel to use Generic File 1.0 (to poll a file from local dir) and send it to a Trading Partner. In B2B User Guide it has been said to have the file name as %TO_PARTY%_%DOCTYPE_NAME%_%DOCTYPE_REVISION%_%MESSAGE_ID%_TIMESTAMP.txt. Extension can be anything (txt, dat, etc).
    It is necessary to have this format? What if I want to send a file with name say ABC.txt*.
    How will I manage this file name pattern if I have to read the file content from a JMS queue (and then send the file to the Trading Partner).
    Thanks,
    Sanjay
    Edited by: Sanjay Bharatiya on 24-Nov-2010 12:07 PM

    Hi Anuj,
    I set up AS2 in my local environment and tested it. I do not get the desired name of the file. The wire message seems to be ok. Following is the Tranport Header present in the wire message from the sender B2B server:
    Message-ID=<ID:<172014.1291742389684.0>@kg_certificate> Content-Transfer-Encoding=binary MIME-version=1.0 From=kg_certificate Disposition-Notification-To=[email protected] AS2-To=exel_certificate User-Agent=AS2 Server Date=Tue, 07 Dec 2010 17:19:50 GMT AS2-Version=1.1 AS2-From=kg_certificate Content-Disposition=attachment; filename=J7Q9A7.txt Content-Type=*application/octet-stream*
    Following is the Transport Header present in the wire message from the receiver B2B server:
    AS2-To=exel_certificate TE=trailers, deflate, gzip, compress Date=Tue, 07 Dec 2010 17:19:50 GMT AS2-Version=1.1 Accept-Encoding=gzip, x-gzip, compress, x-compress AS2-From=kg_certificate Content-Transfer-Encoding=binary Disposition-Notification-To=[email protected] Message-ID=<ID:<172014.1291742389684.0>@kg_certificate> Content-type=application/octet-stream MSG_RECEIVED_TIME=Tue Dec 07 12:20:39 EST 2010 ECID-Context=1.0000In1qASoEoI05nzp2iZ1Cxam9001KGU;kXCmv0 MIME-version=1.0 User-Agent=AS2 Server Oracle HTTPClient Version 10h Content-Disposition=attachment; filename=J7Q9A7.txt Content-Length=211 Host=10.32.200.207:8001 Connection=Keep-Alive, TE From=kg_certificate
    Things look good here but when the file is written to a directory the file name is of the form <sendername>_<doctypename>_<docrevision>_<msgtype>_*****.dat. I do not get the desired file name (J7Q9A7.txt). What am I missing?
    Thanks,
    Sanjay
    Edited by: Sanjay Bharatiya on 7-Dec-2010 11:59 AM

Maybe you are looking for