Is Message debatching in OSB using JMS transport possible

hi
I have message on JMS queue with multiple message(s) in it.
Now my requirement is to read this JMS message as multiple internal message(s) from queue using OSB JMS transport.
Is this possible from OSB JMS transport?
Thanks in advance.
-Ramakrishna Gilla

No.. JMS transport wont automatically do it for you .. You will have to write a jms proxy service and have your logic to do the debatching.. alternatively you can use jms proxy as a pass thru service writing to the file system and then have the JCA file adapter to do the debatching..

Similar Messages

  • How to Send  message to MQ without using JMS Receiver Adapter

    Hi Frnds,
    Actually i am working one File to JMS scenario,I have to send message to MQ,What are the different ways we can send  message to MQ without using JMS Adapter.
    Regards,
    Raj

    Hi Ramesh,
    Thanks for your replay,could you please eloborate how to integrate that one with XI,and how to use in XI?
    regards,
    raj

  • Issue in Synchronous OSB using Jms Queues in OSB11g

    Hi,
    I am working on building a synchronous OSB using the following steps.
    1)     Creating the Synchronous OSB Proxy Service which routes the message to the business service which in turn places a message in the Queue(inqueue) by populating the JMSCorrelationId and waits for the response message to consume from another queue.
    2)     A Composite(SOA) will consume the message from this Queue
    3)     It will do necessary transformation and Places it in another Queue (Say Response Queue).
    4)     OSB Business service waiting in Step 1 will receive the response from this response Queue.
    I used a sample Wsdl which has both request and response message types.
    I observed that the correlation ID is maintained properly from inqueue to response queue. But the message is not getting picked up by OSB from the response Queue
    Twist: It is working absolutely fine in OSB 10g but it is not working in OSB 11g.
    I tried using Messaging service as well as using the sample WSDL i.e keepiing the soap message in the queue. Both the cases are working absolutely fine OSB 10g but not in OSB 11g.
    Can anyone faced a similar issue or any pointers will be great help in this regard.
    Regards,
    Ashok

    To debug this further can you check if the response Q has any active consumers. ? When you use response by correlation ID business service, OSB actually creates MDB's with message selectors under the hood.
    This is a sample of the ejb-jar.xml of the MDB created for a business service with response by Correlation ID pattern.
    <?xml version='1.0' encoding='UTF-8'?>
    <jav:ejb-jar xmlns:jav="http://java.sun.com/xml/ns/javaee">
    <jav:display-name>BEA ALSB JMS Outbound Sync-Async Endpoint</jav:display-name>
    <jav:enterprise-beans>
    <jav:message-driven>
    <jav:ejb-name>ResponseEJB-6577847719916437493-3893eeb7.1287d30ba4f.-7fe1</jav:ejb-name>
    <jav:ejb-class>com.bea.wli.sb.transports.jms.JmsAsyncResponseMDB</jav:ejb-class>
    <jav:transaction-type>Container</jav:transaction-type>
    <jav:message-destination-type>javax.jms.Queue</jav:message-destination-type>
    <jav:activation-config>
    *<jav:activation-config-property>*
    *<jav:activation-config-property-name>messageSelector</jav:activation-config-property-name>*
    *<jav:activation-config-property-value>JMSCorrelationID LIKE 'ID:424541534594cf52%'</jav:activation-config-property-value>*
    *</jav:activation-config-property>*
    </jav:activation-config>
    <jav:env-entry>
    <jav:env-entry-name>service-ref</jav:env-entry-name>
    <jav:env-entry-type>java.lang.String</jav:env-entry-type>
    <jav:env-entry-value>BusinessService$Test$RequestQ</jav:env-entry-value>
    </jav:env-entry>
    As you can see the message selector is based on JMSCorrelationID LIKE 'ID:424541534594cf52%'. This means the business service will pick only those messages which has its correlation ID starting with ID:424541534594cf52.
    You can see the message selector for your MDB from admin console --> deployments.
    Check and confirm if the correlation ID created in the request also starts with this value and the same is send back from the server. Also try deleting and recreating the business service or rename the business service which will create a new MDB under the hood and check the above.

  • How to send message to a queue using JMS adapter

    Hi,
    I need to send messages to the default queue(demoQueue) available in the server using a JMS adapter in a BPEL process.
    I tried doing the same by using an invoke activity that invokes the JMS adapter service to send the message to the queue. I deployed this process in the server and gave an input to send it to the queue. The prcoess executed without any errors in the BPEL console.
    I am also using Hermes v1.0 to monitor the queue but it says that it dint receive any messages in the queue to read.
    I am sorry that i have restrictions from the client that i can't post the code here. Please let me know if anyone has got any solution or if you know any other way of doing the same.
    Thank you
    Message was edited by: prince
    the_prince

    You can use the following procedure :
    DBMS_AQ.ENQUEUE (
    queue_name IN VARCHAR2,
    enqueue_options IN enqueue_options_t,
    message_properties IN message_properties_t,
    payload IN "<ADT_1>",
    msgid OUT RAW);

  • Some of the messages aren't dequeued using JMS/AQ

    Hi.
    I am having strange problems dequeuing messages from an Oracle9i Release 2 database. I have a trigger that sends a message everytime a table is updated. When I have SQL worksheet and update the table through a SQL statement then I only recieve about 50-70% of the events. When I use Oracle Enterprise Manager Console I can see the rest of the messages are lying in the queue as 'READY'.
    I need this to be VERY reliable so if anyone have any ideas I would really appreciate it. I used PL/SQL in the DB because of the speed increase but maybe a Java Stored Procedure will work better? I have included the code in question below.
    Best regards
    Christer Nordvik
    JAVA code
    //get a DB connection to use with JMS
    dbconn = prevision.database.DBPool.getConnection();
    //try to estabilish a connection to the JMS server to recieve alarm updates
    tconn = AQjmsTopicConnectionFactory.createTopicConnection(dbconn);
    /* Create a Topic Session */
    tsess = (AQjmsSession)tconn.createTopicSession(true, Session.DUPS_OK_ACKNOWLEDGE);
    tconn.start();
    topic = ((AQjmsSession)tsess).getTopic("TS",strTopic) ;
    tsub1 = tsess.createDurableSubscriber(topic, "T");//unique id
    while (!done)
    //waits forever
    logger.debug("Waiting for alarms...");
    dtxtmsg = (TextMessage)(tsub1.receive());
    //found a message
    logger.debug("Recieved alarm " + dtxtmsg.getText());
    PL/SQL code
    AS
    BEGIN
    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);
    gt1 number;
    BEGIN
    Message_properties.expiration := 3600; --Set the time to live for the message
    gt1:= DBMS_UTILITY.GET_TIME;
    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);
    --setting the id of the sender
    Message_properties.correlation := 'tst';
    --Message_properties.correlation := gt1;         
    DBMS_AQ.ENQUEUE(queue_name => 'ts.tstopic',
    Enqueue_options => enqueue_options,
    Message_properties => message_properties,
    Payload => message,

    I figured it out. Was something wrong with the trigger in the DB...

  • OSB using socket Transport ,how to keep a TCP connection open

    hi my firends,
    i met a problem , our project need build an OSB to control a socket service which is able to transfer a big data file (maybe a voice file,*.wav),and the client program will play the voice file on live.
    So my solution is that : keep a socket (tcp) connection open,client listen port and makes date play.
    but i can't make the OSB socket transport alway open,it will timeout after a few second if have none date received.
    how could i deal with it ... pls let me konw if you have any idea...i will wait you on line
    thanks guys

    Hi,
    I'm not sure if that's achievable using OSB, and even if it was, I don't think OSB was designed having this type of application in mind...
    I understand that you need a media streaming solution and I'm pretty sure that there are plenty of tools out there that can help you in doing that, and maybe some of them can be integrated with OSB in some way...
    Cheers,
    Vlad

  • Dynamic Queues using JMS Adapter - Possible?

    Can anyone advise if its possible to dynamically set the JMS Queue DestinationName at runtime when using the JMS Adapter?
    My guess is not, but I thought I'd ask anyway...
    Dennis

    Hi Dennis,
    Did u get a solution for this.
    Even i have a same scenario where i have to select the destination queue dynamically.
    Any help in this regards...
    Regards
    Ashwini

  • SOAP - Why not use JMS as the transport layer?

    I have been looking at the SOAP standard and can't understand
    why something hasn't been done. I wondered if someone could help.
    With the current Apache SOAP implementation there is a SOAP
    Transport interface which is implemented for SMTP and HTTP. The
    format of the messages never changes. Although it is not a
    protocol it seems eminently sensible to me that there should be
    a JMS implementation. Then infrastructure bridging cold be used
    to give a universal message queueing standard.
    Being as the current standard supports asynchronous messaging
    over SMTP. It seems to be a trivial matter to add to the SOAP
    implementation that Oracle supply. Does anyone have any good
    reason why it shouldn't be done and is there any reason Oracle
    and other standards body members couldn't have implemented it
    and agreed it in the standard?

    Am I missing something? I wasn't thinking of embedding JMS
    messages over HTTP, but using JMS itself. This would provide an
    industry standard for message queueing message formats, and
    would allow interaction with any message queueing product
    through bridges (i.e. OMB, with no real work). Aren't you
    talking about something different?

  • Siebel 8.1.1 JMS transport and Oracle SOA 10.1.3.4 intregartion using AIA

    Hi
    I am trying to integrate Siebel 8.1.1. and Oracle SOA 10.1.3.4 using JMS transport. When I use method CheckJNDIContext of Business Service - EAI JMS transport through simulator I get the following message and dont see any instance open/close in SOA process. And there is no entries under "The InitialContext has the following entries" as in the logs. There should be values
    Error from the failed instance-
    enabling SLL
    Created JNDI InitialContext with
    java.naming.factory.initial = com.evermind.server.rmi.RMIInitialContextFactory
    java.naming.provider.url = opmn:ormi://hostname:6003:oc4j_soa/default
    java.naming.security.principal =
    java.naming.security.credentials =
    java.naming.security.protocol = ssl
    The InitialContext has the following entries:
    SUCCESSFUL TEST
    -- Message from successful instance which has all entries in InitialContest---
    enabling SLL
    Created JNDI InitialContext with
    java.naming.factory.initial = com.evermind.server.rmi.RMIInitialContextFactory
    java.naming.provider.url = opmn:ormi://hostname:6003:oc4j_soa/default
    java.naming.security.principal =
    java.naming.security.credentials =
    java.naming.security.protocol = ssl
    The InitialContext has the following entries:
    jmsrouter_ejb_AdminMgrBean (AdminMgrBean_RemoteHomeProxy_1nca7p1)
    ejb (javax.naming.Context)
    loc (javax.naming.Context)
    jdbc (javax.naming.Context)
    OracleASjms (javax.naming.Context)
    scheduler (javax.naming.Context)
    eis (javax.naming.Context)
    SUCCESSFUL TEST
    Please help/suggest to resolve the issue.
    Thanks

    I am officially a donut - I went back to check and I hadn't updated the siebel-data-adapter.properties for the siebel-web-determination application. DOH!
    All working now - excellent! :)

  • Guarranteed Message Delivery with OSB 11g

    Hi,
    I'm currently working on a scenario with OSB that requires me to set up guaranteed message delivery. The business scenario is that on one end I have a flat file polling service and I have to transform this data into XML and store it to DB. Concisely, this is the scenario: Flat File -> Proxy -> Business -> JMS Queue -> Proxy -> Business -> DB. The entire process works fine till the time I turn the DB off. In that case, I get a load of erro in the log, and the message in the Queue sits there indefinitely, Even after the DB has been restarted. The only way the message gets stored into DB is by performing a complete server restart, which, needless to say is not acceptable. Stopping and starting the proxy and business services do not work, either.
    I'm using an XA data source for the DB connection pool and the default XA Connection Factory for OSB JMS transport. After delivery failure the message sits in the queue with "receiving transaction" state string. On inspection of the server logs I found that WebLogic can't connect with the datasource even when the database is completely restarted. It requires a server restart for the connection pool to work properly again.
    Could anybody please provide some insight as to what I'm doing wrong?

    Jms:///CF/QName works when we OSB clusterOSB JMS transport is implemented as Weblogic MDB's under the hood. From weblogic 9x onwards , mdbs bind to co-hosted destinations by default.
    So if you have a distributed destination and mdb's are deployed to the same cluster ( happens when jms proxy service is deployed to the cluster) , then it is guaranteed behaviour that the mdb on ms1 binds to dd member on ms1 and mdb on ms2 binds to dd member on ms2. So you will end up seeing 16 consumers ( by default, if you have not configured any work manager to restrict concurrent threads) on each of the dd member.
    we have both BPEL and OSB cluster so when BPEL posting a message how to avoid the racing condition in OSB . as both will look for same QUEUE..Make sure the connection factory used by bpel has load balancing turned on and server affinity turned off. This will ensure a pretty load balanced distribution of the messages to the dd members in the cluster which will be then processed by the proxy service hosted on the same managed server instance.

  • JMS transport warning when start server

    When I start a WebLogic 9 server instance with one application deployed, I get the following warning message 5-6 times before the server changes its state to RUNNING:
    <WSEE>Warning: JMS queue 'weblogic.wsee.DefaultQueue' is not found, as a result, Web Service async responses via jms transport is not supported. If the target service uses JMS transport, the responses will not be able to come back.<JmsQueueListener.connect:227>
    Although the server instance still appears to start fine, these messages clog up the console - since I don't intend to use JMS transport with this server, is there any way to get rid of these messages?
    Thanks,
    David

    Hai
    I am using weblogic9.2. I too got the same problem in my machine. I have solved this problem by changing the configuration in the config.xml file.
    Go to
    <WEBLOGIC HOME>\user_projects\domains\<USER_DOMIN>\config\config.xml
    Open the config.xml and check the following
    <app-deployment>
    <name>webservicesJwsSimpleEar</name>
    <target>AdminServer</target>
    <module-type>ejb</module-type>
    <source-path>C:\bea\user_projects\applications\base_domain/server/examples/build/webservicesJwsSimpleEar</source-path>
    <security-dd-model>DDOnly</security-dd-model>
    </app-deployment>
    if it is there comment this tag and save the config.xml file. Make sure that the server is not running while doing the changes. Now Start the server again.
    Comment out as like follows
    "<!--" <app-deployment>
    <name>webservicesJwsSimpleEar</name>
    <target>AdminServer</target>
    <module-type>ejb</module-type>
    <source-path>C:\bea\user_projects\applications\base_domain/server/examples/build/webservicesJwsSimpleEar</source-path>
    <security-dd-model>DDOnly</security-dd-model>
    </app-deployment> "-->"
    Its working for me try this
    Regards
    Ramesh
    Edited by ramesh.s at 04/04/2007 2:58 AM

  • Configure # of JMS consumers for WebServices over JMS Transport

    I'm using WebLogic Server 9.2. My Web Services are using JMS Transport.
    10,000 Web Services requests are submitted to the Web Services JMS queue at the same time. Processing time seems a little slow. In the Admin console, monitoring info of the JMS queue shows the Consumers is 4 and Consumers High is 6.
    I want to scale Web Services processing by increasing the number of JMS consumers that transform JMS request messages into Web Services requests. Does anyone have an idea to configure it?

    Hi,
    I don't think the number of consumers for a service is configurable. There is a single consumer for each service. Well, there is another consumer for interop purposes, which is irrelevant to our discussion here.
    You may be aware that multiple consumers reading from the same queue would result in requests being processed in parallel, which means the order that the requests are processed might be different from the order that they are put into the queue.
    For applications where the order of processing the requests to the same web service is not important, it probably makes sense to have an option of configuring multiple consumers. But this is no such option right now.
    Regards,
    Dongbo, BEA

  • JMS Transport, Transactional, asynchronous request-response

    Hi again :)
    I have weblogic web service with jms transport and have chosen session bean implementation.
    I'm testing transactional processing now.
    Required feature is to put getting request from queue and processing it in web service in one transaction.
    During tests I have noticed that:
    When I throw RuntimeException from my web service method the message doesn't come back to the queue.
    When I try to sessionContext.setRollbackOnly(); I get an error
    javax.ejb.EJBException: EJB Exception: : java.lang.IllegalStateException: [EJB:010158]Illegal attempt to call EJBContext.setRollbackOnly() from an EJB that was not participating in a transaction.
    When I deploy web service I get the following warning:
    <Warning> <EJB> <> <AdminServer> <[STANDBY] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <> <1238752023176> <BEA-010212> <The EJB 'EventNotifierServiceEJB(Application: portal, EJBComponent: EventNotifierService-1.0-SNAPSHOT.jar)' contains at least one method without an explicit transaction attribute setting. The default transaction attribute of Supports will be used for the following methods: local[publish(package.PackageType)] >
    And putting @TransactionAttribute(TransactionAttributeType.MANDATORY) doesn't change this.
    So It seems that transactions doesn't work by default.
    I turned on XA in my own jms connection factory used by web service but this didn't help.
    Looking in weblogic documentation I have found the following sentences:
    In (http://e-docs.bea.com/wls/docs103/webserv_adv_rpc/jmstransport.html)
    "If you have specified that the Web Service you invoke using JMS transport also runs within the context of a transaction (in other words, the JWS file includes the @weblogic.jws.Transactional annotation), you must use asynchronous request-response when invoking the service. If you do not, a deadlock will occur and the invocation will fail."
    In (http://e-docs.bea.com/wls/docs103/webserv_adv_rpc/asynch.html)
    "The asynchronous request-response feature works only with HTTP; you cannot use it with the HTTPS or JMS transport."
    For me these two sentences are in conflict.
    Currently I'm trying to use just transactional annotation without asynchronous request-response but the risk of deadlocks doesn't sound good for me.
    BTW I have Oneway annotation in my web service method, I'm not sure if this changes something.
    I'll be grateful for any help in resolving this problem.
    Edited by: user10930859 on Apr 3, 2009 3:49 AM

    Hi Karthik-
    You can link the corelation-id..
    Make you third-party application to receive Message-id from JMSRequestQueue and send this message id as correlation-id to JMSResponseQueue. I guess it would work we have tried this as POC.
    Regards,
    Ramesh

  • JMS transport - weblogic changes soap:address location="jms:.. to http

    Hi,
    Please help me to configure web service to use only jms transport.
    I try to create web service that uses JMS transport.
    I started from WSDL where I placed two elements:
    <soap:binding style="document"
                   transport="http://www.openuri.org/2002/04/soap/jms" />
    and
    <soap:address location="jms://host:7041/contextPathName/serviceUriName?URI=queueName" />
    Then in web service implementation I placed following annotation:
    @WLJmsTransport(contextPath = "contextPathName", serviceUri = "serviceUriName", portName = "portName", queue = "queueName", connectionFactory = "connectionFactoryName")
    Deployment is successful but when I look at generated WSDL (Admin console) I see that weblogic has changed <soap:address location="jms:.. to <soap:address location="http....
    And when I look at monitoring I see that port is using JMS transport.
    When I try to test my service using Admin console Test client I see that the queue is not used (Admin console/monitoring/Messages total is still 0) and service uses (I suppose) http transport.

    Hi,
    Please change "http://www.openuri.org/2002/04/soap/jms" to http://www.openuri.org/2002/04/soap/jms/ for soap1.1 or http://www.openuri.org/2002/04/soap12/jms/ for soap1.2.
    There must be some mismatch between edoc and implementation.
    -LJ

  • OSB and JMS

    I need to create a BS which will push messages to a Queue(on separate machine/server/domain) .
    Im not sure how to push the message to a JMS Queue runnin on separate Weblogic 10. xdomain/server than where OSB is installed.
    Error Im getting is
    weblogic.jms.common.JMSException: Connection not found.
    Rgds,

    I have a similar situation
    My connection factory and queue is define on SOA Suite 11g WL Server instance with jndi name as jms/demoCF and jms/demoQueue
    Now when i try to refer this queue from OSB WL server instance using the Proxy Service and url as
    jms://localhost:7001/jms.dempCF/jms.demoQueue ...its not able to pick the message.
    I tried using jms://localhost:7001/jms/dempCF/jms/demoQueue (know this will never work but still wanted to give a shot).
    Can anyone help me in formatting the correct URL to read the message from the queue?
    Thanks

Maybe you are looking for

  • Problem in iphoto

    HI, I am having a problem with iphoto. i made photo book with hard cover, size XL and 22 pages and ordered it so after 1 week i got an email from APPLE like that : It appears that when your order was submitted to Apple, an error caused the image file

  • Cable Driver for Vista

    Hi I have been trying for ages to connect to NSeries PC Suite. I get as far as stage 2 on the connection wizard but then vista says that the driver is not compatible with my operating system. Can anybody help please. George

  • Date mapping 2 dates to 0calquarter

    Hello BI experts, BI 7.0, I mapped  Date1 & Date 2 to 0calquarter based on a condition at field level. Code: IF DATE1< 01jan2010       RESULT = DATE1.     ElSEIF  DATE2>= '20100101'.       RESULT = DATE2.     ENDIF. But when i give DATE1 = 13.03.2010

  • If statements??

    Hi Im new to Xcode and app development. I believe If statements is kind of what i need, but happy to stand corrected if there is a better way. What i want is if a user inputs a figure between 1-10 in a text box a letter A appears in a Label but if th

  • 5.1 sound dropping out in Soundtrack

    Hi all, Got a problem with Sountrack Pro.  I'm mixing a 5.1 soundtrack for a project I'm doing. Every now and again, the audio on a certain track will drop out on some, but not all speakers, even though it's panned to play on them all.  Other sounds