Issue of JMS Dequeue - OSB

Hello

We have created a JMS queue in WLS 10.3.0 and OSB (10.3.1) uses the proxy service - JMS transport to dequeue messages.

Queue JMS WLS-> Proxy-> Business Service (JCA Db adapter) OSB to insert data in a table

IF error in db-> error to invoke OSB and write to a file manager

Case - success
--------------------

The messages are deleted from the queue

Case - failure
-----------------

The messages are not deleted from the queue. Error handler is invoked in OSB and messages are written to a file.


This creates a problem since the attempts of the OSB and the number of files is created. We tried to fix the settings of retry in OSB, to no avail.

Please make a contribution, it is a little bit of urgency.

Kind regards
AP

Published by: ARPL on October 15, 2009 03:41

If I understand correctly your problem right, you want to deal with errors on your own and you don't want OSB to try again for messages that have been processed with the error? Ok?

Your JMS proxy is transactional. When it detects errors, JMS transaction is restored, your message remains in the JMS queue and will be dealt with later again. If you want to avoid a repeated treatment of the same message, then simply adjust your proxy error handler. You can do this by using the resume action or a response at the end of your error handler. This will ensure that messages are processed successfully and the transaction will commit.

http://download.Oracle.com/docs/CD/E13159_01/OSB/docs10gr3/Userguide/modelingmessageflow.html#wp1065361

Tags: Fusion Middleware

Similar Questions

  • Implementation of JMS in OSB

    Hello

    I am a beginner in OSB. I am trying to create a sample application that uses the JMS queue. I went through the documentation on the OSB and Weblogic, however could not create.

    Could you pls help in creating a sample application that uses the JMS queue or point me to a URL where such sample is available?

    Thank you
    Vijay

    You must create a new proxy service (and select the message type that fits your process, anysoap any xml, wsdl, etc), on the second tab, you can select the transport.
    Here select jms in listbox and endpoint insert ' jms://yourhost:yourpost/yourconnectionfactory/Votre_file.

    That's all what to let your proxy service messages from the queue.
    eventually you want to route this message to something else, for this you will need to decide what kind of business you are using (base webservice wsdl, or just some other jms endpoint or file... you name it)

    a little clear?

  • Issue of JMS WebLogic Automigration

    Hello

    Let me first tell you about my server information. Currently, we use weblogic 10.3.3.0. We have 1 admin server and manage the 2 Server (MS_1 and MS_2).

    Currently, we are implementing the automatic migration of JMS on our server. To do this, we follow the steps below:

    1. first cluster must be configured for automatic server migration:

    Home-> Cluster-> configuration-> Migration-> Lock and Edit-> choose migratable machine for migration of automatic server-> Data Source for automatic Migration (choose data store for the migration of the automatic server)-> click Save

    2. environment-> Migratable target-> click on the migratable target-> click Migration-> select-> forced candidate servers Select the migration service policy as 'Automatic failure recovery Services Migrate'-> register and activate changes

    3. need to create a table called ACTIVE in the comic book and the ddl script is located under($WL_SERVER/wl_server_10.3/server/db/oracle/920) query name:leasing.ddl

    4. create a no XA data source (while selecting the pilot, you must select the driver no XA) and under the operation, the data source tab uncheck overall transaction. Also the data source should point to the cluster.

    5. the data source created in step 4 must be used in the JDBC persistence store and can also serve as a source of data of Cluster. The JDBC persistence store should be used in the JMS server and the JMS server should be used in the JMS queue.

    After that, I deploy my Java application to read from the distributed queue JMS. and the Java service is the reading of the JMS queue.

    But when I am restarting the server to manage the below error is thrown and the deployed java application state is making failure:

    ========================

    < 29 April 2015 02:42:15 IST > < WARNING > < HTTP > < BEA-101162 > < org.springframework.web.context.ContextLoaderListener listener has not defined by user: org.springframework.beans.factory.BeanCreationException: error creating bean with name 'jmsResQueueUG' defined in ServletContext resource [/WEB-INF/spring-jms-config.xml]: calling the init method failed; nested exception is javax.naming.NameNotFoundException: unable to resolve 'MTNNDQ '. Solved "; another name 'MTNNDQ '.

    org.springframework.beans.factory.BeanCreationException: error creating bean with name 'jmsResQueueUG' defined in ServletContext resource [/WEB-INF/spring-jms-config.xml]: calling the init method failed; nested exception is javax.naming.NameNotFoundException: unable to resolve 'MTNNDQ '. Solved "; another name 'MTNNDQ '.

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1113)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:431)

    to org.springframework.beans.factory.support.AbstractBeanFactory$ 1.getObject(AbstractBeanFactory.java:254)

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:144)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:251)

    Truncated. check the log file full stacktrace

    Caused by: javax.naming.NameNotFoundException: unable to resolve 'MTNNDQ '. Solved "; another name 'MTNNDQ '.

    at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)

    at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)

    at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)

    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)

    at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)

    Truncated. check the log file full stacktrace

    >

    < 29 April 2015 02:42:16 IST > < error > < hats > < BEA-149265 > < error has occurred in the execution of the request of deployment with the ID ' 1430255500850 'to task 27'. Error: ' weblogic.application.ModuleException: '

    weblogic.application.ModuleException:

    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1514)

    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:486)

    at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247)

    to weblogic.application.internal.flow.ModuleStateDriver$ 3.next(ModuleStateDriver.java:425)

    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)

    Truncated. check the log file full stacktrace

    Caused by: javax.naming.NameNotFoundException: unable to resolve 'MTNNDQ '. Solved "; another name 'MTNNDQ '.

    at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)

    at weblogic.jndi.internal.BasicNamingNode.lookupHere(BasicNamingNode.java:252)

    at weblogic.jndi.internal.ServerNamingNode.lookupHere(ServerNamingNode.java:182)

    at weblogic.jndi.internal.BasicNamingNode.lookup(BasicNamingNode.java:206)

    at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)

    Truncated. check the log file full stacktrace

    >

    ====================================================

    "MTNNDQ" is the name of the queue that is configured in the properties file. Where the bed spring-jms - config.xml.

    "jmsResQueueUG" is the name of Spring bean.

    Please note that during the server starts deployment the above question is coming, but after the successful restart when I deploy him point above does not.


    Please suggest.


    Thanks in advance.


    Concerning

    Yoan Kar

    Hello

    This problem is solved now. By changing the url of the server to management server to manage the url of the server and changing the connection factory developed to manage the server as below the problem is resolved.

    JMS_FACTORY_TT = t3: / / osb1:7003, osb1:6005 / MTNNJMSCF

    Concerning

    Barnes

  • Issue of JMS request/response model

    Hi all

    I'm a JMS request/response using q temporary queue model, as I understand it.

    I want to know is if it is possible to use a single queue of the application and the response without 2 subscribers on the queue of diversion of each and other messages.

    For example:
    -client A sends a message to the queue of Q.requestReply with text ("query")
    B reads the message off the coast of the Q.requestReply queue
    B captures MessageId
    B sets the CorrelationId MessageId = replyMessage
    B sends replyMessage to queue Q.requestReply with the text ("the answer")
    -A reads the response message and prints them out 'the response '.

    Is this possible without B pick up the message that he has responded to A?
    I'm trying this through java, and if A is down, B continue to read the message you post in response to A q.

    Hope it makes sense
    Concerning
    Ruan

    without filters, any Subscriber could get any message. with filters, you can choose who receives this message. I don't know what is your exact usage scenario, but since your original post, I think maybe you have a pool of workers who listen on a queue, remove a message, do the work, then the response on the same queue. you could implement this scenario by using a property of message custom as "isReply".

    -all 'workers' listen queue with a filter "isReply is false.
    -client A makes a request in the queue, then listen to the queue with the filter "correlationId = & isReply == true.
    -When a worker receives a request, it does the job, then hands the answer on the queue, by setting isReply to true and the correlationId for the messageId property request

  • Access JMS in OSB

    Hello

    I'm trying to queue data in a queue.

    Syntax of the Uri of the endpoint is:

    JMS://host:port(,host:port) * / FactoryJndiName/DestJndiName


    In my case FactoryJndiName and destJndiName contains ' / '.

    How to escape "/" in Endpoint uri, so that it will read FactoryJndiName and destJndiName properly.


    Thank you
    Maryse

    You use the 7001 port in the URL. Is this sight to queue in the server administrator? Check the admin server JNDI tree and make sure that this factory of queue and connection are saved there.

    Kind regards
    Anuj

  • JMS messaging with OSB

    Hello Forum, so far I was not able to find any useful information so the question:

    1. OSB is an implementation of JMS?

    2. to use JMS with OSB do I need to install separate JMS? If this is not the case, is installed by itself when installing OSB JMS?

    Thank you!

    Oracle uses the Bea Weblogic JMS provider, so when you install OSB (on weblogic) you'll have a JMS engine that is installed too.

    To configure a JMS Module go on Weblogic Console-> (left panel) Services-> e-mail-> JMSModules.

    I hope this helps.
    Pablo

  • Messages of Rollback in OSB


    Hi all

    Can someone suggest me the best way to move the messages from the queue JMS of error of queue JMS main OSB. I move messages from a main queue to the queue of the error call BS on failure. I want to restore their new main line after awhile.

    Thanks in advance.

    PK.

    Why go back you to the queue of the error? Use the limit of restitution and substitute delivery delay to retry messages. Otherwise if you want to move the messages from the queue to the main queue error write a PS who listens to the error queue and publishes the message in the main queue using BS.

  • Need help on Weblogic JMS of Clustering

    Hi all

    Our code is evolving into a managed environment (2 servers OSB) clustered, in order to support JMS clustering I already did the below, I just need your advice if I did it correctly or not. Please notify

    1) has created 2 JMS servers, targeted a JMS on OSB MS 1 and second server JMS on OSB 2 MS.
    (2) distributed destinations (queues and topics) subdeployment on both JMS servers created.
    (3) target all connection to the OSB Clsuter plants. Load balancing and server affinity is enabled by default. Affinity of the server must be turned off for good balancing to occur? Please advise on this
    (3) JMS Proxy and service companies use cluster URL is now (jms://serverA:7001, serverB:7001/CF/QueueOrTopic). I hope that its okay? Please notify

    Are there other settings I need to do or I missed? Please let us know.

    In addition, still a thing we ask SOA Composites via protocol SOA-live in OSB. Servers SOA held by one other team will also be load-balanced. Since it is a call from t3, balancer load HTTP would not come a picture here, right? How can I load balance this out call service business (2 options below)

    (1) t3://server1:8001,server2:8001/default/ABCProduct!1.0/ABCService_DirectBinding
    (2) specifies two individual end points and select the algorithm in the form of Robin for load balancing
    T3://Server1:8001/default/ABCProduct!1.0/ABCService_DirectBinding
    T3://Server2:8001/default/ABCProduct!1.0/ABCService_DirectBinding

    What is the difference between the 2 options above? In addition, if one of the nodes SOA subsides, which option would automatically redirect to another node. We must ensure that the HTTP load balancer ensures this thing to. thanks

    Published by: Amit Sachdev on June 13, 2012 12:16 AM

    Affinity of the server being true within factory connection binds the customer to Member UDQ destination.

    If need a client to really balance between destinations, then you will need to set it to false.

  • Message Listener listens only 1 queue in the configuration of distributed queues!

    Hi guys,.

    This may be the wrong place for this post.

    We have created a system of e-mail with the OSB proxies come and messages between distributed queues. After all this messages autour brewing, the messages themselves in a distributed queue where a java client is waiting to pick up the results. Our problem is that it is only reading one of the queues in this queue distributed.

    The following is the code segment that wants the message with a specific id:
    public Message (String queueName, String messageId) receiveMessage throws {FrameworkException}
    BytesMessage, bytesMessage = null;
    If (null == queueSession) {}
    init();
    }
    try {}
    Queue receiveQueue = lookupQueue (queueName);
    QueueReceiver queueReceiver = null;
    Channel selector = null;
    If (null == messageId) {}
    queueReceiver = queueSession.createReceiver (receiveQueue);
    } else {}
    selector = "JMSCorrelationID = '" + messageId + "'";
    queueReceiver = queueSession.createReceiver (receiveQueue, selector);
    }

    bytesMessage (BytesMessage) = queueReceiver.receive ();
    queueReceiver.close ();
    } catch {...


    QueueReceiver.receive () will listen to all members in a distributed queue (spread over 2 servers managed in a cluster)?

    Thank you very much

    No.. Since you have a single consumer, he can listen to only one destination member.

    Is your java client to run in Server or an external client? If its operation in Server convert the client to an mdb.

    Since this one issue of jms, try to post in the forum of jms:
    WebLogic Server - JMS

  • OSB Service post a Message in the queue JMS twice or duplicate

    Hello

    I have an adapter of the poll of OSB Proxy Service database

    Strategy of the poll: logic of delete

    Column name: status

    Read value: P

    Unread value: N

    Form #1:

    Change of status to "n" and given an end point valid URI of the JMS queue

    Success: DBAdapter > > OSBProxy > > PublishToJMSQ and the situation has changed to 'P '.

    Form #2:

    Change in status of "n" and in view of an invalid endpoint URI of the JMS queue. That is to say, remove resources from JMS queue

    Error: DBAdapter > > OSBProxy > > OSBBusinessService (@Service Error Handler) > > DBAdatper and the situation has changed to 'E '.

    Both work as expected when they are tested one by one. However, if I change #1 & 2 # Record Record and commit at the same time, the status changes to 'P' and 'E' correctly, but the message is published in the JMSQ TWICE (Duplicate) of the first disc. Please note the folder payload #1 and #2 are different.

    It is a behavior strange and unable to understand why it's happening and how it is resolved.

    The two ""required Transaction ","Same Transaction for answer"were not affected ways unchecked. "

    I took non - XA Datasources and QoS in road @Stage activity Publish Options is exactly once. And the version is 12 c

    Your help is very appreciated.

    Thank you

    Hello, the problem has been resolved by defining lines of data per Transaction on 1 in the DB adapter configuration.

  • Cannot write to a queue JMS business in OSB 12 c (12.1.3)

    Hello

    I have developed a service application of bus in jdev (version 12.1.3.0.0). In this application of bus service, I have developed a service bus project. In this project there is a business service with the protocol type and message jms with a xsd in the query part and no in response part.but after the deployment of the service bus project when I test the business service the I get an error like " invocation resulted in an error: [JMSPool:169803] JNDI lookup the JMS connection factory jms.sCF failed" : javax.naming.NameNotFoundException: while trying to search for "jms.sCF" did not find subcontext 'jms '. Solved "[root exception is javax.naming.NameNotFoundException: while trying to search for"jms.sCF"did not find subcontext 'jms'.] [Solved "]; rest the name ' jms/SCF"."

    but this same queue works fine in soa12c.

    Help, please.

    Thank you

    Sébastien.

    I solved.

    We must create a JMS connection to the SOA managed server server and also a deployment under connect to the JMS server. Now, I create a queue, CF and update the info to adpater JMS. Then we create the application in the OSB and the uri of end point of BS gave us the reference for the port SOA.

  • Persistence of a user in an Application of JMS OSB id

    I have an app that user log in. Once connected, they call an OSB service places a message in a jms queue using OSB business services. I have a proxy of OSB service that is listening on the queue. It gets the message out of the queue and calls another service.  I want to be able to pass the user ID of the original cookie through flow of jms up to my final point, where it is made of a database insert.  Someone has suggestions on how best to keep the user through the jms business name and proxy services.  I saw where you can pass the subject of the appellant in the details of the definition of business jms transport section, but I don't know if it will work and how the proxy can get their hands on it at the other end.  Advice would be appreciated.

    Thank you

    Mike

    I found the answer to a colleague. Here's a solution: Oracle Fusion Middleware security: spread of identity using transport JMS with Oracle 11 GR 1 material PS2 Server Bus

  • jms OSB 12 c security question

    Hello

    I am preparing a demo and played with the settings of transaction in osb12c on jms queues.

    installation program:

    a proxy incoming jms that reads inputQ (with a factory connections XA)

    a business service database of jca that insert a record into a database

    a business of jms service that publishes an account in outputQ (with a factory connections XA)

    This proxy-request pipeline - I add an action to publish (with qos: exactly - once)

    in the routing node, I call the "database business service".

    pipeline parameters: transaction required = N and 'same deal for answer' = N

    testscenarios:

    1.

    I run a first test: every success: a record added to the database and a record in the outputQ.

    2.

    I run the same test again; This translates into an error of violation of unique key in the database; so no record is added in the database = OK

    I think (considering the two parameters of transaction in the pipeline have the value 'n') that my record would be released in my outputQ, but it is published in the errorQ.

    Why is this happening?  Why isn't - this report not published in the outputQ, there is no specified local transaction.

    and when I change this setting to 'Y' it would be published in the errorQ, because it's all in the same local transaction.

    Or it has something to do with the 'global' operation in osb?  And if so, what is the meaning of this definition "required transaction?

    What Miss me?

    I founded this test on this video: https://www.youtube.com/watch?v=KtUXaXeoUVU (as you can see this video shows other then my results)

    Since the transaction is started in the pipeline, the delivery of the message to jms proxy is outside the transaction, in case of error/rollback if you want the message to be redistributed or redirected use xa jms connectionfactory

  • Configuration of JMS Transport in OSB: uri problems and customization

    Hey guys, first send you my greetings, are an excellent opportunity to participate in this kind of community.

    The question is this:

    In OSB typically when business service or a service with jms Protocol proxy are developed, we are required to indicate the uri request or response in the following format:

    JMS://host:port/factoryJndiName/QueueJndiName

    example: jms://10.4.24.2:7001/jms.sample.factory/jms.sample.myqueue

    forcing indicate explicitly the host and port, which gives several problems when the jms server changes the IP or host name, usually always indicated an alias that is mapped in the hosts file on the server, but the problem persists because the value of the port is not dynamic

    No there is no way to specify the host and port of the Server JMS in code business service or proxy service?

    If we can have a similar solution to services that use the ejb Protocol, which is not necessary to specify the JNDI provider and the values of the host and port are configurable through the console of the OSB

    Please your help

    Thank you

    rickymax

    OK thanks, but the scenario is to resolve the url of the proxy service, therefore, do not have to specify the URL, the ip values, and the port on the transport tab, because these data are configurable at the server level

    Please help

  • Consume message JMS work through proxy OSB service unit

    Hello

    Someone knows how to consume a unit of work (UOW) JMS message using a type of OSB Proxy Service of JMS?

    I can present a work unit JMS message (which is composed of several constituent messages) using a combination of service OSB proxy & business and defining the UOW transport headers properly. I can also separately produce and consume Java objects via a JMS queue where consumption is made via the proxy OSB (of type java request message), but these are not messages UOW.

    Apparently, as soon as it is a message of the UOW then consumed message is ObjectMessage ArrayList and we use the type of 'Java' request for the proxy consumer JMS message, but I'm not sure of how to create the jar of simultaneous customers for use in the transport configuration of the proxy service same JMS for output ObjectMessage ArrayList (message UOW).

    Ideally I would like to consume a single UOW XML message via a proxy OSB JMS service.

    Pointers would be appreciated.

    R

    Finally got this working!

    For posterity: necessary to insert messages JMS Java object on the side of the producer (Business Service) OSB JMS with UOW correct jms header set in the node of the transport route. Then consume the message of working group on the other side via the proxy service of jms with "java" request message type, with appropriate jar containing the class of the object as the 'Customer' jar in Transport JMS configuration. In the same JMS consumer proxy I had to make a legend of java, by transmitting the contents of $body, using java.util.ArrayList and javax.jms.ObjectMessage as entry in a method (.. decodeJavaMessage (ArrayList ...)). In this legend of java class, you can get to each ObjectMessage individual via the cast method get() on Arraylist to (ObjectMessage) and then just catalogued the getObject() on this Objectmessage in your original Java class (the same as what you have inserted initially on the queue).

    I hope someone saves some time in the future!

Maybe you are looking for

  • unstable display

    When I browse most pages with Firefox, there is often unstable display. It's like a television that receives information of the satellite wireless. When the signal is not good, it has an unstable instant display. On firefox, it lasts less than 0.5 s.

  • How can I reset FireFTP to original settings?

    My fire ftp account shows no more local files. All I see is the files on the server. I can't go back to the standard format two window with local files on left and remote files on the right. How can I get this back to the original settings?

  • Yahoo Mail doesn't work does not correctly

    I have the latest version of Firefox, which is OK and an older version that has problems with Yahoo Mail as well. Firefox 3.6.12 used to work with Yahoo Mail, but no more so there must be Yahoo which is something wrong and I do NOT put to level anyth

  • Bookmark Manager has disappeared. How can I get that back?

    I use Firefox 6.

  • Deauthorize computers

    I have said tunes that I have 5 computers authorized. I have only 2 computers. How can I get rid of the other 3?