JMS Bulk Read of Queue

does anyone have jms code sample to perform bulk reads from a jms queue?
          

What the heck is a bulk read from a JMS Queue, how is that different from
          the work a regular QueueReceiver performs? You may get better results by
          posting this to the JMS forumn
          ~Ryan Upton
          "bea user" <[email protected]> wrote in message
          news:4022872c$[email protected]..
          > does anyone have jms code sample to perform bulk reads from a jms queue?
          

Similar Messages

  • JMS Topics translate to Queues behind the scenes?

    Hi There:
    In discussing JMS implementation with coworkers I found someone mention that even if we created topics and have users subscribed to those topics, those topics get translated into individual queues per topic per user. So the queue in affect gets subscribed to the topic and the user is actually subscribed to the queue. While I can imagine that this kind of implementation makes sense for reliable delivery, I find it hard to believe that this is the way JMS implements topics internally.
    Can someone throw some lite on this please?

    RajMap wrote:
    Well the content gets replicated to the queues when it is not necessary to do that. If I am not doing reliable delivery, then the message that is published to the topic is delivered to the users that are subscribed to the topic at the point in time, and to do that I do not see the need to implement it via queues. Like I mentioned before for reliable delivery it makes sense to implement them to queues.
    And secondly it might lead to an explosion of queues internally. Consider for e.g. if we have say 5000 topics and about 10-15 subscribers for each topic, it will result in up to 75000 queues. I am not sure if that is a big number for queues, but it feel larger than what I designed for because in my mind I am thinking 4000-5000 topics.you are making a lot of conjectures based on entirely abstract concepts. what is a "queue"? what is a "topic"? these are just abstract ideas used by the jms spec. the words "queue" and "topic" define a bunch of behavior, but say nothing about how you need to implement that behavior. is 75000 queues a lot of queues? who knows, depends how i choose to implement a queue. is the data "replicated" to each queue in a topic? who knows, depends how i choose to store data. you can't make any of these statements outside of a specific implementation of the jms spec.

  • Reg: JMS Exception sending to queue null

    Hi,
    When i try to receive the data from the external system in the form of xml through JMS i am getting an exception like "JMS Exception Sending to queue null". Can somebody help me with this in resolving the issue.
    Thanks & Regards,
    P.Prasanna.

    Hi Tom,
    Thank you very much for your help. This is the error i am getting now.
    com.ford.vista.exception.VistaSystemException: exception caught in proxy
         at com.ford.vista.business.common.VistaProxy.makeWrapperException(VistaProxy.java:197)
         at com.ford.vista.business.common.VistaProxy.invoke(VistaProxy.java:125)
         at $Proxy2.processOrderPublishing(Unknown Source)
         at com.ford.vista.business.order.delegate.OrderTransactionBusinessDelegate.changeStatusEvent(OrderTransactionBusinessDelegate.java:340)
         at com.ford.vista.integration.exinterface.service.MdbOagisInterfaceService.callService(MdbOagisInterfaceService.java:97)
         at com.ford.vista.integration.exinterface.service.MdbInterfaceService.processMessage(MdbInterfaceService.java:178)
         at com.ford.vista.integration.exinterface.service.MdbInterfaceService.processMessage(MdbInterfaceService.java:97)
         at com.ford.vista.webservice.VistaTransactionWebService.processRequest(VistaTransactionWebService.java:61)
         at com.ford.vista.webservice.VistaBaseWebService.doPost(VistaBaseWebService.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
         at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
         at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
         at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
         at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
         at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
         at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:61)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1064)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:598)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:206)
         at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:80)
         at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:214)
         at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
         at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:116)
         at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
         at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
         at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
         at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:623)
         at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:457)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
    --- nested ---
    com.ford.vista.exception.VistaSystemException: JMS Exception sending to queue null
         at com.ford.vista.integration.communicator.JmsMessagingCommunicator.send(JmsMessagingCommunicator.java:149)
         at com.ford.vista.integration.communicator.JmsMessagingCommunicator.sendAndReceive(JmsMessagingCommunicator.java:82)
         at com.ford.vista.integration.exinterface.service.ExternalInterfaceServiceBase.sendAndReceive(ExternalInterfaceServiceBase.java:80)
         at com.ford.vista.integration.exinterface.service.ExternalInterfaceServiceBase.sendAndReceive(ExternalInterfaceServiceBase.java:49)
         at com.ford.vista.integration.exinterface.service.CustomerInterfaceService.requestCustomerDetails(CustomerInterfaceService.java:124)
         at com.ford.vista.integration.exinterface.service.InterfaceService.requestCustomerDetails(InterfaceService.java:355)
         at com.ford.vista.business.customer.service.CustomerService.requestCustomerDetails(CustomerService.java:145)
         at com.ford.vista.business.contract.helper.ContractBusinessFactory.convertContractCustomerListWithCustomer(ContractBusinessFactory.java:516)
         at com.ford.vista.business.contract.helper.ContractBusinessFactory.createContractDTOWithCustomer(ContractBusinessFactory.java:332)
         at com.ford.vista.business.contract.service.ContractService.getContractDetails(ContractService.java:154)
         at com.ford.vista.business.order.helper.OrderBusinessFactory.addContractData(OrderBusinessFactory.java:1087)
         at com.ford.vista.business.order.helper.OrderBusinessFactory.createOrderDetailsDto(OrderBusinessFactory.java:542)
         at com.ford.vista.business.order.service.OrderService.getOrderByNumber(OrderService.java:888)
         at com.ford.vista.business.order.helper.OrderPublishFactory.createOrderPublishRequestDTO(OrderPublishFactory.java:93)
         at com.ford.vista.business.order.service.OrderPublishService.createPublishEntry(OrderPublishService.java:222)
         at com.ford.vista.business.order.service.OrderPublishService.processOrderPublishing(OrderPublishService.java:157)
         at java.lang.reflect.Method.invoke(Native Method)
         at com.ford.vista.business.common.VistaProxy.invoke(VistaProxy.java:107)
         at $Proxy2.processOrderPublishing(Unknown Source)
         at com.ford.vista.business.order.delegate.OrderTransactionBusinessDelegate.changeStatusEvent(OrderTransactionBusinessDelegate.java:340)
         at com.ford.vista.integration.exinterface.service.MdbOagisInterfaceService.callService(MdbOagisInterfaceService.java:97)
         at com.ford.vista.integration.exinterface.service.MdbInterfaceService.processMessage(MdbInterfaceService.java:178)
         at com.ford.vista.integration.exinterface.service.MdbInterfaceService.processMessage(MdbInterfaceService.java:97)
         at com.ford.vista.webservice.VistaTransactionWebService.processRequest(VistaTransactionWebService.java:61)
         at com.ford.vista.webservice.VistaBaseWebService.doPost(VistaBaseWebService.java:107)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictServletInstance.java:110)
         at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLifecycleServlet.java:174)
         at com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycleServlet.java:313)
         at com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLifecycleServlet.java:116)
         at com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.java:283)
         at com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(ValidServletReferenceState.java:42)
         at com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(ServletInstanceReference.java:40)
         at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:61)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1064)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:598)
         at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:206)
         at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:80)
         at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:214)
         at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
         at com.ibm.ws.webcontainer.cache.invocation.CacheableInvocationContext.invoke(CacheableInvocationContext.java:116)
         at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:186)
         at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
         at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
         at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:623)
         at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:457)
         at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:672)
    --- nested ---
    javax.jms.JMSException: MQJMS2005: failed to create MQQueueManager for ''
         at com.ibm.mq.jms.services.ConfigEnvironment.newException(ConfigEnvironment.java:434)
         at com.ibm.mq.jms.MQConnection.createQM(MQConnection.java:998)
         at com.ibm.mq.jms.MQConnection.createQMNonXA(MQConnection.java:707)
         at com.ibm.mq.jms.MQQueueConnection.(MQQueueConnection.java:206)
         at com.ibm.mq.jms.MQQueueConnection.(MQQueueConnection.java:76)
         at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:143)
         at com.ford.vista.integration.communicator.JmsMessagingCommunicator.createQueueSession(JmsMessagingCommunicator.java:488)
         at com.ford.vista.integration.communicator.JmsMessagingCommunicator.send(JmsMessagingCommunicator.java:134)
         at com.ford.vista.integration.communicator.JmsMessagingCommunicator.sendAndReceive(JmsMessagingCommunicator.java:82)
         at com.ford.vista.integration.exinterface.service.ExternalInterfaceServiceBase.sendAndReceive(ExternalInterfaceServiceBase.java:80)
         at com.ford.vista.integration.exinterface.service.ExternalInterfaceServiceBase.sendAndReceive(ExternalInterfaceServiceBase.java:49)
         at com.ford.vista.integration.exinterface.service.CustomerInterfaceService.requestCustomerDetails(CustomerInterfaceService.java:124)
         at com.ford.vista.integration.exinterface.service.InterfaceService.requestCustomerDetails(InterfaceService.java:355)
         at com.ford.vista.business.customer.service.CustomerService.requestCustomerDetails(CustomerService.java:145)
         at com.ford.vista.business.contract.helper.ContractBusinessFactory.convertContractCustomerListWithCustomer(ContractBusinessFactory.java:516)
         at com.ford.vista.business.contract.helper.ContractBusinessFactory.createContractDTOWithCustomer(ContractBusinessFactory.java:332)
         at com.ford.vista.business.contract.service.ContractService.getContractDetails(ContractService.java:154)
         at com.ford.vista.business.order.hel
    Regards,
    P.Prasanna.

  • Java edition bulk read

    Am I right in understanding that there is no way to do bulk reads in the Java version of BDB like there is in the c version? That is, in the c version one can specify DB_MULTIPLE_KEY as a Cursor parameter, and then have a large buffer filled with multiple records. This does not seem to be possible in the Java version.
    Thanks!

    Correct.

  • Routing JMS message from same queue to different channels.

    From a given adapter module, is there a way of calling different communication channels?
    The scenario: The sender of the data is JMS. One single queue contains desperate text format. Based on the content of the first 4 characters , PI has to parse it differently in its own corresponding MT. The target IDoc structure remains the same. I have multiple messageTransformBeans set up, one for each MT assuming that the data would arrive in different JMS queues. However since the data is now all heaped on to a single queue, the challenge of routing the data now lies in SAP PI.
    HowTo - Send Test Messages to the Adapter Engine (to an Integrated Configuration) - This solution does send message directly to the IE (using 7,1), but not to the adapter engine where the messageTransformBeans exist.
    Any solid pointers in the direction will be really helpful.
    Regards,
    Keerti

    Hi,
    you can go for end to end testing.
    if jms not available use file adapter in the sender side and fetch the text file and test it.
    Regards,
    Muni

  • Bulk read problems: DB_MULTIPLE/DB_MULTIPLE_KEY buffers must be aligned

    Hi I am trying to bulk read a Btree database that has the following stats...
    53162 Btree magic number
    9 Btree version number
    Little-endian Byte order
    duplicates Flags
    2 Minimum keys per-page
    4096 Underlying database page size
    1007 Overflow key/data size
    5 Number of levels in the tree
    16M Number of unique keys in the tree (16063325)
    25M Number of data items in the tree (25429676)
    13177 Number of tree internal pages
    23M Number of bytes free in tree internal pages (56% ff)
    788089 Number of tree leaf pages
    1881M Number of bytes free in tree leaf pages (41% ff)
    465 Number of tree duplicate pages
    1003680 Number of bytes free in tree duplicate pages (47% ff)
    0 Number of tree overflow pages
    0 Number of bytes free in tree overflow pages (0% ff)
    0 Number of empty pages
    0 Number of pages on the free list
    I have the following code...
         int bsize = 4096*1024;
         char *buffer = new char[bsize];
         Dbt datax(buffer, bsize);
         datax.set_flags(DB_DBT_USERMEM);
         ret = cursorp->get(&key, &datax, DB_SET_RANGE | DB_MULTIPLE_KEY);
    However, I keep getting an error saying...
    DB_MULTIPLE/DB_MULTIPLE_KEY buffers must be aligned, at least page size and multiples of 1KB
    terminate called after throwing an instance of 'DbException'
    what(): Dbc::get: Invalid argument
    Any insight is appreciated.
    thanks
    Nishant

    HI Michael, I changed as per your suggestion and it works now.. however the bulk read is giving worse performance than reading one at a time.
         int bsize = 4*4096*1024;     //64MB
         char *buffer = new char[bsize];
         Dbt datax(buffer, bsize);
         datax.set_ulen(bsize);
         datax.set_flags(DB_DBT_USERMEM);
         ret = cursorp->get(&key, &datax, DB_SET_RANGE | DB_MULTIPLE_KEY);
         if (ret != 0) {
              cout << "Could not find any trades data for " << bsid << endl;
         } else {
                   do {
                        DbMultipleKeyDataIterator BulkIterator(datax);
                        while (BulkIterator.next(key, data)) {
                        clBidAskTrade d = (clBidAskTrade )data.get_data();
                             print_trade((char *)key.get_data(), d, "trades", format);
                        if (cursorp->get(&key, &datax, DB_NEXT | DB_MULTIPLE_KEY) == DB_NOTFOUND) {
                             break;
                   } while (1);
         delete buffer;
    is running slower than...
              ret = cursorp->get(&key, &data, DB_SET_RANGE);
              if (ret != 0) {
                   cout << "Could not find any trades data for " << bsid << endl;
              } else {
                   clBidAskTrade d = (clBidAskTrade )data.get_data();
                        while ((ret = cursorp->get(&key, &data, cur_flag)) == 0)) {
                             d = (clBidAskTrade *)data.get_data();
                             print_trade((char *)key.get_data(), d, "trades", format);
    what am I doing wrong? thanks for your help.

  • Error reading jms message from MQ-queue

    Hi,
    To be able to use async-sync bridge in JMS adapter, we recently patched XI 3.0 from SP 15 to SP21. But the jms sender adapter has problem reading the message from the MQ-queue, see detail of error-message at the end of this message.
    I did change the adapter to use modules use RequstResponseBean and ResponseOneWayBean as explaned on help.sap.com.
    The async-sync bridge worked once and the it started failing.
    Detailed error message in communication channel monitoring:
    Error while processing message '3c5a0640-9c03-11dc-82f2-000255d3bbf7';  detailed error description: com.sap.aii.adapter.jms.api.channel.filter.MessageFilterException: Could not begin a AF transaction: TxManagerException: Unable to open transaction: com.sap.engine.services.ts.exceptions.BaseSystemException at com.sap.aii.adapter.jms.core.channel.filter.TxManagerFilter.filterSend(TxManagerFilter.java:103) ...
    /Maria Lande

    Hi,
    I fixed it myself. I hade to do a Xi Data Cahe Refresh.
    Navigate to Administration section on the SAP Exchange Infrestructure start page. On the Directory tab page, choose Cache overview under the heading Administration of Locks and Caches. Do a Full Cache Refresh on the adapter engine.
    /Maria Lande

  • Error in using the JMS Adater using weblogic queue

    I am using weblogic queue in jms adapter to queue the data. i configured the server.xml
         <shared-library name="oracle.weblogic" version="10.1.3">
              <code-source path="D:\product\10.1.3.1\OracleAS_5\jdk\lib\weblogic.jar"/>
         </shared-library>
    I got the following error. Any Suggestions?
    file:/D:/product/10.1.3.1/OracleAS_5/bpel/domains/default/tmp/.bpel_OSM_OrderRequest_2.0_c68a29fd8af11327e1a8892e8de5a6bb.tmp/Sample.wsdl [ Produce_Message_ptt::Produce_Message(orderRequestMessage) ] - WSIF JCA Execute of operation 'Produce_Message' failed due to: Could not instantiate InteractionSpec oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec due to:
         Missing class: oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec
         Dependent class: oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA
         Loader: oracle.bpel.common:10.1.3
         Code-Source: /D:/product/10.1.3.1/OracleAS_5/bpel/lib/orabpel.jar
         Configuration: <code-source> in /D:/product/10.1.3.1/OracleAS_5/j2ee/oc4j_soa/config/server.xml
    This load was initiated at orabpel.root:0.0.0 using the Class.forName() method.
    The missing class is not available from any code-source or loader in the system.; nested exception is:
         oracle.classloader.util.AnnotatedClassNotFoundException:
         Missing class: oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec
         Dependent class: oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA
         Loader: oracle.bpel.common:10.1.3
         Code-Source: /D:/product/10.1.3.1/OracleAS_5/bpel/lib/orabpel.jar
         Configuration: <code-source> in /D:/product/10.1.3.1/OracleAS_5/j2ee/oc4j_soa/config/server.xml
    This load was initiated at orabpel.root:0.0.0 using the Class.forName() method.
    The missing class is not available from any code-source or loader in the system.; nested exception is:
         org.collaxa.thirdparty.apache.wsif.WSIFException: Could not instantiate InteractionSpec oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec due to:
         Missing class: oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec
         Dependent class: oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA
         Loader: oracle.bpel.common:10.1.3
         Code-Source: /D:/product/10.1.3.1/OracleAS_5/bpel/lib/orabpel.jar
         Configuration: <code-source> in /D:/product/10.1.3.1/OracleAS_5/j2ee/oc4j_soa/config/server.xml
    This load was initiated at orabpel.root:0.0.0 using the Class.forName() method.
    The missing class is not available from any code-source or loader in the system.; nested exception is:
         oracle.classloader.util.AnnotatedClassNotFoundException:
         Missing class: oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec
         Dependent class: oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA
         Loader: oracle.bpel.common:10.1.3
         Code-Source: /D:/product/10.1.3.1/OracleAS_5/bpel/lib/orabpel.jar
         Configuration: <code-source> in /D:/product/10.1.3.1/OracleAS_5/j2ee/oc4j_soa/config/server.xml
    This load was initiated at orabpel.root:0.0.0 using the Class.forName() method.
    The missing class is not available from any code-source or loader in the system.
    </summary>
    </part>
    -<part name="detail">
    <detail>
    org.collaxa.thirdparty.apache.wsif.WSIFException: Could not instantiate InteractionSpec oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec due to:
         Missing class: oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec
         Dependent class: oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA
         Loader: oracle.bpel.common:10.1.3
         Code-Source: /D:/product/10.1.3.1/OracleAS_5/bpel/lib/orabpel.jar
         Configuration: <code-source> in /D:/product/10.1.3.1/OracleAS_5/j2ee/oc4j_soa/config/server.xml
    This load was initiated at orabpel.root:0.0.0 using the Class.forName() method.
    The missing class is not available from any code-source or loader in the system.; nested exception is:
         oracle.classloader.util.AnnotatedClassNotFoundException:
         Missing class: oracle.tip.adapter.jms.outbound.JmsProduceInteractionSpec
         Dependent class: oracle.tip.adapter.fw.wsif.jca.WSIFOperation_JCA
         Loader: oracle.bpel.common:10.1.3
         Code-Source: /D:/product/10.1.3.1/OracleAS_5/bpel/lib/orabpel.jar
         Configuration: <code-source> in /D:/product/10.1.3.1/OracleAS_5/j2ee/oc4j_soa/config/server.xml
    This load was initiated at orabpel.root:0.0.0 using the Class.forName() method.
    The missing class is not available from any code-source or loader in the system.

    I am able to fix this error by copying "JmsAdapter.jar" to "applib" directory of oc4j_soa.
    I was getting a new error.
    +"Missing class: oracle.tip.adapter.api.TranslationAware+
    +     Dependent class: oracle.tip.adapter.jms.JmsInteractionSpec+
    +     Loader: global.libraries:1.0+
    +     Code-Source: /D:/SOA1013/j2ee/oc4j_soa/applib/JmsAdapter.jar+
    +     Configuration: <code-source> in /D:/SOA1013/j2ee/oc4j_soa/config/server.xml+
    +The missing class is available from the following locations:+
    +     1. Code-Source: /D:/SOA1013/bpel/lib/orabpel.jar (from <code-source> in /D:/SOA1013/j2ee/oc4j_soa/config/server.xml)+
    +     This code-source is available in loader oracle.bpel.common:10.1.3."+
    But managed it to fix it by copying "orabpel.jar" to "applib" directory.
    We need to restart OC4J once we copy the JAR files.
    regards,
    S.Vasanth Kumar.

  • JMS messages stuck in queue in weblogic v923 cluster

    Hi all,
    Enviornment details:
    In our pre-production weblogic v923 cluster enviornment with Oracle 10g database, there are 10 server boxes with 2 managed nodes running on each server box in linux enviornment.
    There are 3 JMS queues and 1 error queue per managed node.
    All the queues are durable and the persitence store is a database table. There is a single database table per single managed node.
    High loads of JMS messages from client applications coming on each of the 3 JMS queue are processed by the cluster on daily basis.
    The JMS messages that failed to be processed the very first time due to the application logic exceptions are put on error queue since the retry is set to zero on the non-error queue.
    The application exceptions are logged to a database table for futher reference.
    The falied messages from the error queue are read by spring based MDP and resent to the application for reprocessing.
    If no application exceptions, the message will be persisted in a relational database; in the case of failures, MDP code puts the failed message back on to the error queue.
    The auto_ack is true on the JMS message.
    It is observed about less than 1% of the messages fail the original processing and are in error queue on daily basis.
    99.9% of the time, the reprocessing of the messages from the error queue is a success.
    Currently due to some obvious reasons, the system administrator stops a managed node when the disk is full and start a different managed node on the same server box. This approach will be stopped in the very near future so that all nodes on all servers are running at any point of time by making few enviornment changes.
    Problem:
    1a) Occasionally, it is observed that 1 - 4 JMS messages are stuck in the error queue. There are no signs of reprocessing as there are no application exceptions or the corresponing insert into the database. The JMS persistence store table still has the JMS message.
    1b) It is observed that over time, the same JMS messages that were originally stuck on server 1's managed node A are no longer there but are found in a different node (say node B) on a different server box.
    As far as I understand the JMS, a message could be in a Pending state if MDP (in my case) does not automatically send ACKNOWLEGMENT back due to an issue in the Spring Defaultlisternercontainer before calling MDP's onMessage(). I am not sure as what happens to that status over time).
    It is also observed that the stuck messages content is not much different than the other messages that are processed fine.
    Any pointers/input is highly appreciated.
    Thanks in advance for your valuable input and time.

    Off the top of my head, I can only think of two reasons why a message might move from node to node:
    (A) An application is dequeueing them and enquening them elsewhere.
    (B) The application is using distributed queues, and the distributed queue has been configured to enable "queue forwarding". The forwarding feature automatically moves messages from distributed queue members that have no consumers to members that do have consumers. Queue forwarding is sometimes enabled as a work-around to better enable MDP support of WL distributed destinations, unlike WebLogic MDBs, MDPs have no container logic to ensure that all members of a distributed destination are serviced by a consumer under all circumstances...
    Regards,
    Tom

  • Can' t consume JMS messages from remote queue

    Hello.
    We are using Tibco JMS Server as Foreign JMS server from WL server. And WebLoigic (8.1 SP 3) MDBs are receivers. Everything works fine until there is a restart of the Tibco server. Once the queues become unavailabe, we see in the WL log that the destination is unreachable. And also once the Tibco server comes back up, WL log says that the Foreign queues have been re-connected. But still, we don't see any messages being received by the MDB. The MDBs are configured to poll for messages evey 1 second. Still we don't see it happening after the foreign server restart.
    But if we re-start the WL server, it begins to work just fine.
    Any pointers?
    Thanks

    I do have the correct IP address of the syslog server set up. I do not want email logs so have not enabled that.
    My setup is
    remote lan > SA520-remote (192.168.160.1) > [ site to site IPSec VPN over WAN ] > SA520-local (192.168.150.1) > syslog server (192.168.150.25) & local lan
    Firewall is set up to allow ANY IN & OUT to local lan on both routers.
    I have also set up specific rules for UDP 514 Syslog traffic (no difference, currently disabled)
    syslog server has -no- firewall at the moment.
    Syslog server is receiving messages from the local router with no issues.
    Log Severity is set to Information &  Log Facility is set up to send to Syslog.
    I have also setup a SNMP trap on the syslog server & pointed the remote router to it in hopes of diagnosing the issue.
    Both routers have the latest firmware applied.
    Using wireshark on the syslog server I see no traffic on UDP 514 (syslog) or UDP 162 (snmp)
    I can use the WUI for the remote & ping the 160.1 with no problem. Both ping & TLS/TCP traffic show up in wireshark on the syslog server when I do so.
    It looks to me like there is a problem routing the syslog messages out of the router & then back through the VPN.
    Worst case I'll set up another syslog server on an old machine at the remote location & then cron the logs to the central syslog server but it really seems I shouldn't have to.

  • AQ (PL/SQL) and JMS access to same queue?

    Hello,
    I have a queue of type JMS-MapMessage for which I want to enqueue messages with the
    AQ PL/SQL API. How would I define it's
    payload since apparently the message content
    cannot be displayed by sqlplus? Alternatively, how can I set my own properties for a JMS-type queue in PL/SQL?
    I'd be glad if I could get to see an example
    of a PL/SQL-ENQUEUE to a JMS-type queue!
    Thanks,
    Karin

    I am using PL/SQL directly to send JMS text messages. Works fine. Here is example:
    DECLARE
    Enqueue_options DBMS_AQ.enqueue_options_t;
    Message_properties DBMS_AQ.message_properties_t;
    Message_handle RAW(16);
    User_prop_array SYS.AQ$_JMS_USERPROPARRAY;
    Agent SYS.AQ$_AGENT;
    Header SYS.AQ$_JMS_HEADER;
    Message SYS.AQ$_JMS_TEXT_MESSAGE;
    Message_text VARCHAR2(100);
    BEGIN
    Agent := SYS.AQ$_AGENT('',NULL,0);
    User_prop_array := SYS.AQ$_JMS_USERPROPARRAY();
    Header := SYS.AQ$_JMS_HEADER( Agent, '', 'aq1', '', '', '', User_prop_array);
    Message_text := 'Message 1 from PL/SQL';
    Message := SYS.AQ$_JMS_TEXT_MESSAGE(Header, LENGTH(Message_text), Message_text, NULL);
    DBMS_AQ.ENQUEUE(queue_name => 'aq1.webapp_queue',
    Enqueue_options => enqueue_options,
    Message_properties => message_properties,
    Payload => message,
    Msgid => message_handle);
    COMMIT;
    END;
    /

  • MDB sending a JMS message to a queue (WLS 8.1.4)

    We are trying to implement a MDB to send a JMS message to a dynamically created JMS queue. Is this possible? We have found documentation stating the JMS Queue destination needs to be in the deployment descriptor, but in our case it changes so this is not an option. Any help would be appreciated.

    Sorry I didn't address the answers more clearly. You were correct on the answers except with:
              Switch from using a resource-reference to a direct reference for a send? Answer: No. We are only trying a direct send, not utilizing the resource-reference.
              We are already using "false" for the connection.create[Queue]Session code.
              Should we be trying something else because of transactional behavior of not utilizing the resource-reference for the send as you thought?
              We have tried the queue as XA and non-XA and neither work.

  • JMS Message reading problem

    Hi all
    I have a problem with MQJMS...I am successful in putting the message to the queue and also reading it...but the problem is that i was trying to put a string message in the queue...but i am not able to read the original string from the message.this is the code i used....
    Putting the message in the queue
    String Buffer = "Message";
    boolean transacted = false;
    session = qconnection.createQueueSession( transacted, Session.AUTO_ACKNOWLEDGE);     
    BytesMessage message =
    session.createBytesMessage();
    message.setJMSType("DATAGRAM");               
    message.setStringProperty("Fmt","PLAINTEXT");               
    message.writeBytes(Buffer.getBytes());                              
    qSender = session.createSender(ioQueue);               
    qSender.send(message);
    Reading the message from the queue
    QueueReceiver queueReceiver = session.createReceiver(ioQueue);     
    Message msg = queueReceiver.receive(Long.parseLong(pollTime));     
    If I try to print the msg i am getting the details as
    JMS Message class: jms_bytes
    JMSType: String
    JMSDeliveryMode: 2
    JMSExpiration: 0
    JMSPriority: 4
    JMSMessageID: ID:414d5120454149544553544d47522020456e8f002004d901
    JMSTimestamp: 1165040197487
    JMSCorrelationID:null
    JMSDestination: queue://EAITESTMGR/BALU.IN
    JMSReplyTo: null
    JMSRedelivered: false
    JMSXDeliveryCount:1
    JMS_IBM_MsgType:8
    Fmt:PLAINTEXT
    JMSXAppID:java
    JMS_IBM_Format:
    JMS_IBM_Encoding:273
    JMS_IBM_PutApplType:6
    JMS_IBM_Character_Set:UTF8
    JMSXUserID:eaijdev
    JMS_IBM_PutTime:06163748
    JMS_IBM_PutDate:20061202
    Integer encoding: 1, Floating point encoding 256
    54484953204d45535341474520495320564941204a4d53204348414e4e454c
    But the thing i need is to get the same string value ie Message
    Anyone out there could please help me out with this
    Thanks in advance
    Balagopal

    See: http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/jms_tutorialTOC.html
    BTW you are diplaying the toString() value of the Message object itself. You need to call the Message class's method to get the message out of the Message object.

  • SOA 11g and JMS cannot write to queue

    I have a process which will read from a queue (works fine), but trying to write to a queue never posta a record. I am using the JMS adapter. The write operation in the console shows it was successful . I am using a non-XA data source. the xa worked, but I have my own error handling which the XA does not work with.
    Maybe the non-xa is not doing a commit on wirte?

    You have to configure a transport header action with "pass all headers through pipeline" option to make this work.
    Configuring Transport Headers in Message Flows
    The transport header action is a communication type action, and it is available in pipeline stages and error handler stages.
    Configuring Global Pass Through and Header-Specific Copy Options for Transport Headers
    The following options are available when you configure a transport headers action:
    > * The Pass all Headers through Pipeline option specifies that at run time, the transport headers action passes all headers through from the inbound message to >the outbound message or vice versa. Every header in the source set of headers is copied to the target header set, overwriting any existing values in the target >header set.

  • JMS transaction between two queues

    Hi there,
              I have been asked to build some code that will act as an adapter
              between two legacy systems. Basically I will have to read from a
              queue, transform the information and write it to the other, then
              receive the response, transform it, and put it again back to the
              "caller" system.
              There are 4 queues implicated in this task.
              I will to use JMS Api in my code but I have found a problem. The way
              of performing a transaction in JMS is this:
              QueueSession queueSession = queueConnection.createQueueSession(true,
              0);
              "Here, the first argument means that the session is transacted; the
              second indicates that message acknowledgment is not specified for
              transacted sessions."
              As queueConnection is a connection to ONE queue, I can only perform
              transactions to ONE queue! But I don´t want to consume a message till
              I know it has been sent correctly to the other side.
              I have also read that some JMS providers support JTA transactions.
              But I don´t know if this is the right way to go.
              Can anybody bring some light to this issue.
              Thaks al lot for your attention!!
              

              This post has blossomed into several threads. I'm going to
              attempt a shot-gun approach to answer all questions.
              On MQSeries:
              See "How to use IBM MQ as a JMS Provider?" posts for more info.
              On transacted sessions:
              If this is ALL MQSeries, then it is up to MQSeries if a transacted
              session can span multiple queues and/or servers. WL supports this.
              MQSeries may simply prevent a session from
              spanning multiple servers and/or queues. Note that other vendors,
              that do not have their own TX monitor, very very likely do
              not have a 2PC in a transacted session that spans multiple servers
              (meaning it is not truly transactional).
              On JTA and multiple queues:
              The whole reason for being for JTA is to be able to span multiple
              operations. Yes, this is supported in WL.
              On the manuals:
              These issues are covered in great detail in the WL JMS developer's
              guide in the transactions chapter.
              On bridging:
              You do not have to write your own bridge.
              WL supplies a bridge to greatly simplify the work involved.
              WL 7.0 can even bridge two XA compliant JMS implementations transactionally.
              (Neither has to be WL JMS.) WL 6.1SP3 will have this same feature, now
              avialable as alpha code in 6.1. See "How to use IBM MQ as a JMS Provider?" posts for more
              info.
              On queuing and transactions:
              One can not include a request and its response in the same transaction. Period.
              This is the nature of queueing. One can dequeue from one queue and
              enqueue to another. I think you understand this, but it bears repeating.
              Tom
              Mac wrote:
              > I know that a recieve will not remove a message and a send will not
              > send it until the transaction is commited.
              >
              > In fact I want to do 2 transactions one for each receive-send.
              >
              > graphic again! ;)
              >
              > queue1 queue3
              > ======> =====>
              > legacy 1 Java Adapter legacy 2
              > queue2 queue4
              > <====== <=====
              >
              > In the period of time between reading from queue1 and writing to
              > queue3 the adapter could fail thus a message will be lost. The same
              > happens with queue4 and 2. Maybe this could be solved with a
              > transaction over queue1 and another one over queue4, but I'm not sure.
              >
              > I will have to decide if I use JMS or MQSeries API. MQ allows you to
              > wrap more than one queue in the same transaction if they are in the
              > same Queue Manager. So I wanted to know if JMS also allows to make a
              > transation over more than one queue and how is it done. only JTA?
              > QueueSession? impossible?
              >
              > tnx really for your help!
              >
              > "Raja Mukherjee" <[email protected]> wrote in message news:<[email protected]>...
              > > You can not. Even if you could, it's at least have to be 2 transactions.
              > > Because, if all of your work is in one transaction you will never send or
              > > receive messages, you would be blocking for ever. In order to send the
              > > message you will have to commit the transaction on the first place.
              > >
              > > .raja
              > >
              > > "Mac" <[email protected]> wrote in message
              > > news:[email protected]...
              > > > Sorry Tom, I think that I have not explained well my problem.
              > > >
              > > > The following extrange symbols are supposed to be an explaining
              > > > graphic!! ;)
              > > >
              > > >
              > > > queue1 queue3
              > > > ======> =====>
              > > > legacy 1 Java Adapter legacy 2
              > > > queue2 queue4
              > > > <====== <=====
              > > >
              > > > Legacy System 1 wants to call a service of legacy system 2, but they
              > > > can not communicate directly so we will use MQ Series as both them
              > > > support it.
              > > > For that purpose Legacy1 puts a message in queue1. The Java Adapter
              > > > transforms the message and puts it in queue3. Legacy2 processes the
              > > > request and replies with a message in queue4. The Java Adapter gets
              > > > it, transforms it and puts it in queue2. As a result legacy1 obtains
              > > > the information it was asking for.
              > > >
              > > > I'm using MQ Series 5.2 as middleware. I will not use Message Driven
              > > > Beans so I won´t have an EJB container to perform distributed
              > > > transactions.
              > > >
              > > > The question is: How can I put and get messages in the 4 queues
              > > > using de same transaction?? Can I do it somehow with JMS session or I
              > > > must use a JTA transaction?
              > > >
              > > > Thanks again for your help, and forgive me for being so insistent!
              > > > :)
              [att1.html]
              

Maybe you are looking for

  • How do I update timecapsule wi-fi settings?

    My iMac connects wirelessly to my timecapsule to perform regular backups. However, I now have a new broadband provider and therefore home network and i can no longer connect to the Timecapsule. Airport was previously showing that a Timecapsule was pr

  • Failed sync, now ipod will not shutdown, reset or connect to iTunes

    Was syncing my ipod touch 4g and the sync failed with a message something along the lines of "cannot sync as there is already a sync running". Now the ipod is really slow. It will now power off. Hard reset brings it back to the same state. When I plu

  • Material document not generated

    Hi gurus I created a outbound delivary and PGI is also done. But it didn’t generated any materail document. Can any one help me?? Reward points. kishore

  • Equipment master data : address in "Location" tab

    Hi experts, Can someone tell me what the "address" data (in equipment master data, "Location" tab) are for? What is an example of business case which will use that "address"? Thanks, P.

  • Portal 8.1 vs portal 7

    Hi: Does anyone know taht is there a component in portal 8.1 similar to what portal.wf component does in portal 7. thanks. Regards, Qiang Guo