JMS Persistence within WLPI 1.2.1

Hi,
We have just run some tests with persisted JMS messages into the WLPI Event Topic.
Messages arrive to start workflows and they appear in the JMSMESSAGE table within
the WLPI database. It all works rather nicely.
However, if we kill the WLPI server and restart it, persisted messages not yet
dealt with do not get picked up again by WLPI for processing. They just stay stuck
in the database. Thats not good. Any ideas intelligent peeps?
TIA
Chris

Chris
In 1.2.1 the best way to implement the solution was to write the message
to eventQueue not the topic. All messages that get posted to the topic
simply get processed by a MessageDrivenBean and forwarded to eventQueue
which in turn gets processed by the eventListener. The first step would be
to correct that problem.
Tony
"Chris Salisbury" <[email protected]> wrote in message
news:3bcc4913$[email protected]..
>
Hi,
We have just run some tests with persisted JMS messages into the WLPIEvent Topic.
Messages arrive to start workflows and they appear in the JMSMESSAGE tablewithin
the WLPI database. It all works rather nicely.
However, if we kill the WLPI server and restart it, persisted messages notyet
dealt with do not get picked up again by WLPI for processing. They juststay stuck
in the database. Thats not good. Any ideas intelligent peeps?
TIA
Chris

Similar Messages

  • Migrating JMS Persistence from WLS 4.5.2  to WLS 6.1

    Hi,
    we are migrating several applications from WLS 4.5.2 to WLS 6.1. A application use
    JMS with persistence in DB (JMS persistence WLS 4.5.2 is in DB) with WLS 6.1 we want
    to change persistence mode to FIles. Therefore during migration process we have to
    move the messages stored in the database to a file. The messages stored in the file
    will be recovered for WLS 6.1.
    My doubt is, Is there a automatic process for migrate messages in the DB to a persistence
    file?
    Thanks

    Hi.
    I'm not sure that there is an automatic process to accomplish this, but you might get a
    better answer by posting this on the JMS newsgroup.
    Regards,
    Michael
    Manuel Villalta wrote:
    Hi,
    we are migrating several applications from WLS 4.5.2 to WLS 6.1. A application use
    JMS with persistence in DB (JMS persistence WLS 4.5.2 is in DB) with WLS 6.1 we want
    to change persistence mode to FIles. Therefore during migration process we have to
    move the messages stored in the database to a file. The messages stored in the file
    will be recovered for WLS 6.1.
    My doubt is, Is there a automatic process for migrate messages in the DB to a persistence
    file?
    Thanks--
    Michael Young
    Developer Relations Engineer
    BEA Support

  • JMS Persistence with WLS 8.1SP3 in a cluster

    I have been following the BEA recommendations. I have configured my JMS to write to an Oracle DB for JMS persistence. This is in a clustered environment. I have had one server go down and then come back. During the outage or right before the outage there were request in the JMS queue. I would assume when the server that failed came back up it would then receive and process the JMS request that were waiting in the DB. That doesn't seem to be happening. My setup is one JMS topic for out bound. The JMS queue is set up for internal traffic. It uses Message Beans. We are also using XADrivers.
              The setup is WLS8.1SP3 on Solaris hitting an Oracle 9 db. Please forward me any questions or suggestions. Thank you in advance.

    WebLogic JMS won't automatically recover messages that enter an "in-doubt" state due to persistence errors that occur while they are being sent or received. To recover such messages, JMS needs to be restarted. You can contact customer support for an 8.1 sample program that automatically restarts JMS (without restarting all of WebLogic) when this problem occurs.
              Tom

  • Server boot takes a lot of time due to JMS persistence file store

    Hi,
    We're using WebLogic 9.2 on a windows machine.
    Recently, we enhanced our application to work with JMS.
    We're using 2 JMS servers on 2 different servers in a cluster, and working with distributed destinations.
    We're using file store as our persistence store.
    Lately, we found that server boot takes a lot of time due to actions which are performed on the file-store.
    Analyzing this problem, we saw that the file size is ~2GB.
    We understand that the file size does not shrink (unless manually compacted), and its size is matching the highest number ever of pending messages in the queues (like a high water-mark).
    We also turned store debug on, using weblogic.Debug.DebugStoreIOPhysical, and we saw a lot of recovery logs after the file-store is opened.
    We've checked and verified that our JMS transactions are completed successfully. We also verified that the number of pending and current messages is 0.
    We've stopped the server gracefully, verifying there are no pending messages.
    However, server boot repeatedly takes ~30 minutes due to heavy work done on the persistence store.
    Compacting or removing the file store eliminates the delay.
    However, we want to avoid manual operations every time we want to boot the server.
    Please share your ideas.
    Thanks,
    Itsik

    The only suggestions I have off the top of my head are:
    * Ensure (1) the host system has at least 2GB (file store size) of free physical memory in addition to the memory used by current processes, and (2) the host system is not rebooted between each WebLogic restart. If you make sure of these two items, then the operating system will implicitly cache the store's file contents in memory even between boots -- when WebLogic subsequently boots the file store, the O/S should serve the file contents up much more quickly.
    * Consider moving to a JDBC store. JDBC store runtime performance is lower, but since you have a typically only have a small amount of records to recover, boot performance should be higher in this case.
    * Not that it helps your particular case, but it happens that we have boot performance enhancements in process for a future release (hopefully a near future release).
    Tom

  • JMS Listener within a workflow

    I have a JMS listener, waiting for new messages on a queue. Once there is a new message it uses that message which contains an object to begin the work flow process. The first step in the work flow calls an external engine we built that does quite a bit. At each critical point in the engine it adds a message to a topic. I want to have a listener for each one of the steps that will listen for the results to be added to the topic. Once it's there if everything is good go to the next listener and wait for the next result set. If it's bad I want to take the results and send the message to another queue and end that work flow. I'm not having much luck finding how to put a listener within the work flow. I have the listener that starts the process going fine using a Global Automatic event.
    I thought the best solution would be do a subflow process at each points of them listeners. Have another global automatic event listener waiting which will then start the subflow process which stores the results and then returns which step to take back to the original process. But that didn't work it was completing all of the subflow's w/o waiting for a listener to find a message. So nothing ended up happening.
    Any help?

    That's what I figured with that global interactive I was trying to access the instance variables before so it wasn't showing up under my user. Now instead of an error pop up the error message shows up at the bottom of the runtime UI.
    Error at bottom of page: (Followed by a bunch of package names)
    Unexpected Error
    javax.faces.el.EvaluationException: /jsf/menu/menuActionNormal.xhtml @24,147 onActivate="#{componentBean.doExecuteAction}": fuego.papi.exception.InvalidTaskNumberException: Invalid task number '0' for activity '/Manager#Default-1.0/Global'.
    Warning in the Log:
    There was an error when trying to obtain the environement information: null
    Application: Engine, Module: Main, Thread: <0> StartUpServerIt gives me the top error when I have the notification set up to receive an external notification and gives me the warning for both cases either external notification or internal event. Its an internal event but in the documentation it never covers internal event situations for NotificationWait so I tried both.
    Another thing is when I have 2 or more instances waiting at the wait how does it know which one to go too? In the real example it will be receiving an object from the thread that will have an id number. But in this little test set up how does it know which instance the global activity is for?

  • Using Spring JMS DefaultMessageListenerContainer within Oracle CEP

    Hi everyone,
    I need to use a DefaultMessageListenerContainer Spring bean (from spring-jms.jar), have the wlevs bean factory to assemble it (it depends from a POJO) and set it as a property of an Adapter bean.
    How do I do it?
    I tried to put the spring-jms.jar into the xbootclasspath but it depends from spring-core.jar. If i put spring-core.jar into the xbootclasspath, the server dies screaming.
    Documentation says i can use legacy Spring beans within an OCEP application, well how do i do it? Can anyone tell me the right steps to do?

    Thanks for the answer :), i just had to import the appropriate packages into the MANIFEST.MF, put all the classes referring to spring-jms into the bundle and away i went.
    The application starts, listens to the JMS destination (an Oracle AQ queue) and dequeues messages correctly.
    I still have a problem when i try to suspend/uninstall the application from the OCEP visualizer.
    The JMS listener is encapsulated into an OCEP ResumableBean/SuspendableBean. It gets created and started (with a call to DefaultMessageListenerContainer.start()) within the beforeResume() method. I hoped that putting a call to DefaultMessageListenerContainer.shutdown() within the suspend() method would do the trick but... the undeployment hangs for a while, then the following is printed on stdout:
    ####<13-gen-2011 17.09.15 CET> <Error> <org.springframework.osgi.extender.internal.util.concurrent.RunnableTimedExecution> <> <myServer> <[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <1294934955875> <BEA-000000> <Closing runnable for context OsgiBundleXmlApplicationContext(bundle=cepcc-adapter-test-aq, config=osgibundle:/META-INF/spring/*.xml) did not finish in 10000ms; consider taking a snapshot and then shutdown the VM in case the thread still hangs>
    ####<13-gen-2011 17.09.15 CET> <Notice> <Deployment> <> <myServer> <[ACTIVE] ExecuteThread: '7' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <> <1294934955895> <BEA-2045001> <The application bundle "cepcc-adapter-test-aq" was undeployed successfully>
    ####<13-gen-2011 17.09.29 CET> <Warning> <Spring> <> <myServer> <Timer-5> <> <> <> <1294934969426> <BEA-2047008> <Exception encountered while stopping application "cepcc-adapter-test-aq": java.lang.IllegalStateException: BundleContext is no longer valid
    java.lang.IllegalStateException: BundleContext is no longer valid
         at org.eclipse.osgi.framework.internal.core.BundleContextImpl.checkValid(BundleContextImpl.java:1047)
         at org.eclipse.osgi.framework.internal.core.BundleContextImpl.getService(BundleContextImpl.java:694)
         at org.springframework.osgi.service.importer.support.internal.support.ServiceWrapper.getService(ServiceWrapper.java:99)
         at org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor$ServiceLookUpCallback.doWithRetry(ServiceDynamicInterceptor.java:107)
         at org.springframework.osgi.service.importer.support.internal.support.RetryTemplate.execute(RetryTemplate.java:83)
         at org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor.lookupService(ServiceDynamicInterceptor.java:430)
         at org.springframework.osgi.service.importer.support.internal.aop.ServiceDynamicInterceptor.getTarget(ServiceDynamicInterceptor.java:415)
         at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)
         at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
         at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
         at $Proxy371.unregisterMBean(Unknown Source)
         at com.bea.wlevs.spring.MBeanRegistrationBeanPostProcessor.destroy(MBeanRegistrationBeanPostProcessor.java:145)
         at com.bea.wlevs.spring.ApplicationContextLifecycle.onContextClosedEvent(ApplicationContextLifecycle.java:261)
         at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:149)
         at org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
         at org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
         at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
         at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
         at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:819)
         at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.doClose(AbstractOsgiBundleApplicationContext.java:197)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.access$501(AbstractDelegatedExecutionApplicationContext.java:69)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$2.run(AbstractDelegatedExecutionApplicationContext.java:214)
         at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.normalClose(AbstractDelegatedExecutionApplicationContext.java:210)
         at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.close(DependencyWaiterApplicationContextExecutor.java:379)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.doClose(AbstractDelegatedExecutionApplicationContext.java:236)
         at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:794)
         at org.springframework.osgi.extender.internal.activator.ContextLoaderListener$3.run(ContextLoaderListener.java:807)
         at org.springframework.osgi.extender.internal.util.concurrent.RunnableTimedExecution$MonitoredRunnable.run(RunnableTimedExecution.java:60)
         at org.springframework.scheduling.timer.DelegatingTimerTask.run(DelegatingTimerTask.java:66)
         at java.util.TimerThread.mainLoop(Timer.java:512)
         at java.util.TimerThread.run(Timer.java:462)
    >
    I also tried a call to DefaultMessageListenerContainer.setTaskExecutor passing it an anonymous class like this:
    container.setTaskExecutor(new TaskExecutor() {
    @Override
    public void execute(Runnable task) {
    logger.debug("Submitting runnable task");
    executorPool.submit(task);
    where executorPool is an instance field of the OCEP bean initialized like this: executorPool = Executors.newFixedThreadPool(8);
    Anyway the result is the same, when i perform the uninstall from the OCEP visualizer the application is undeployed, but with the same painful message.
    Any hint on what i'm doing wrong?
    Thanks in advance!
    Edited by: javawarrior2003 on 13-gen-2011 17.29

  • OIM 11g HA Configuring a Shared JMS Persistence Store

    Hi Experts,
    From the Oracle® Fusion Middleware High Availability Guide 11g Release 1 (11.1.1) Part Number E10106-09: http://download.oracle.com/docs/cd/E14571_01/core.1111/e10106/imha.htm#CHDGEDCI
    Step 4 says:
    On the Configuration tab, in the Directory field, enter the location of a persistent storage solution (such as NAS or SAN) that is available to other servers in the cluster. Specifying this location enables pending JMS messages to be sent.
    Please helps me clarify how the storage (SAN in my case) is shared??, I think I need a NFS partition in the SAN, this partition is accesible, as mount point, in HOST1 and HOST2
    Is it required a third-party solution, such as Veritas, to manage the shared filesystem???
    My customer says that NFS is not recommended for this purpose, con someone send me documentation to clarify that
    Best Regards

    manin21 wrote:
    Hi Experts,
    From the Oracle® Fusion Middleware High Availability Guide 11g Release 1 (11.1.1) Part Number E10106-09: http://download.oracle.com/docs/cd/E14571_01/core.1111/e10106/imha.htm#CHDGEDCI
    Step 4 says:
    On the Configuration tab, in the Directory field, enter the location of a persistent storage solution (such as NAS or SAN) that is available to other servers in the cluster. Specifying this location enables pending JMS messages to be sent.
    Please helps me clarify how the storage (SAN in my case) is shared??, I think I need a NFS partition in the SAN, this partition is accesible, as mount point, in HOST1 and HOST2
    Is it required a third-party solution, such as Veritas, to manage the shared filesystem???
    My customer says that NFS is not recommended for this purpose, con someone send me documentation to clarify that
    Best RegardsYou need a shared filesystem. Doesn't matter how it's managed, that's up to you.

  • JMS persistence problem

              Hi,
              I have persistence half working on WLS6.1 Messages are being written to the database
              ok. When I crash the server, the message is still there. When I bring the server
              back up the message appears in the destination but is removed from the database.
              Therefore if the server crashes before the message is consumed it is lost.
              Any help appreciated.
              Fraser
              

    The message appears in the destination but is removed
              from the database? That is strange behavior, and I
              have no explanation. I highly recommend contacting
              customer support. I also
              recommend trying the latest SP, just to see if that makes
              a difference.
              Tom, BEA
              Fraser wrote:
              > Hi,
              >
              > I have persistence half working on WLS6.1 Messages are being written to the database
              > ok. When I crash the server, the message is still there. When I bring the server
              > back up the message appears in the destination but is removed from the database.
              > Therefore if the server crashes before the message is consumed it is lost.
              >
              > Any help appreciated.
              > Fraser
              

  • Qusetion on Persistence of JMS Messages in Weblogic 5.1

    Hi All,
    We have the following scenario in our project.The Weblogic Server 5.1 is running on 4 different m/c. And the same code is deployed in all those 4 different Weblogic Server. All the servers are connected to same database. Now we are using JMS and planning to use persistence in JMS. So if we create the JMS Tables (5 tables provided by BEA for JMS persistence) in Database and all the 4 different m/c s JMS queue access the same table , will there be any conflict/error? If the message stored by one server is retreived by another server then that it will be not a problem for us. Except this scenario will there be any problem? ( The jms queue is present in each and every m/c(but points to same DB tables)) . We have the requirement - No message should be picked up twice.
    And does Weblogic 5.1 supports persistence in file system? If it supports then how to implement it?
    Waiting for your reply.
    Thanks
    Srijeeb.

    in a point to point messaging where you use que ,there is no question of picking up the message twice as it will be removed from the queue once it is pushed to the receiver . hope you are using clustering for the weblogic servers. then there should not be any issues due to 4 servers simultaneously accessing the database

  • How to enable JMS to be J2EE Compliant from within JVM

    I am wondering how I can use JMS in J2EE compliant mode from within the JVM via a Java stored procedure.
    I know that I can set a property (i.e. oracle.jms.j2eeCompliant="true") at execution time, but was wondering how I can make the entire JVM J2EE compliant.

    You cannot make the JVM J2EE compliant! However, you can use some J2EE APIs such as JMS, on top of J2SE.
    See a basic use of JMS in Java stored procedure
    http://otn.oracle.com/sample_code/tech/java/jsp/samples/jms/Readme.html
    Note: the main purpose of JMS support within the database is to integrate with AQ.
    Kuassi

  • Holding Request within OSB 10gR3

    I have a requirement where OSB 10gR3 needs to hold on to the soap request (from the consumer) under certain conditions and send to the target service (via Business Service) only when the conditions matche. I am just wondering what is the best/optimal way to achieve this within OSB 10gR3 - JMS, DB, File, any other.. but all will require some degree of coding (Java callouts).
    Appreciate any inputs or experience people have encountered in the field.
    Thx.

    Hisaak,
    You are correct. This is more of a BPEL use-case rather than OSB. I am trying to use the JMS persistence for storing the request and when an external event arrives in another JMS Queue, I have a Proxy (JMS) listens for the event and read all the request from the JMS queue and send to the target service.
    Eduardo,
    Thanks for mentioning this. The consumers will be calling this service asynchronously (as they can't wait (and block) for the condition to be true to receive the response). Once OSB received the request from the consumers it is OSB's resposnsibility to send it successfully to target service or send notifications (emails) in case of failure. Since OSB is stateless and as I mentioned this use-case is more on the stateful side, some persistence needs to happen on the OSB as Hisaak mentioned in this earlier post.
    Thanks for your input, feedback and ideas. Lets see how the design for this use-case using OSB evolve at my organization.
    Thx

  • Configuring Toplink Cache Coordination using JMS

    After having spent one whole day reading documentation on the above topic, I did not get anywhere. I am looking for a direction to start aquainting myself with Oracle JMS basics to enable me with the configuration in toplink. I hope someone could please help me in getting started, direct me to documentation and/or examples and then I could have some specific and meaningful questions to ask.
    As of now, I have these questions.
    1) In order to configure Toplink Cache Coordination using JMS, do I use Oracle AS JMS or OJMS provider?
    2) Should I be configuring OJMS before I could use Oracle AS JMS?
    3) If I am using Oracle 10.1.2 Application Server, will OJMS Database Schema be defined and the resource adapter deployed by default or is there a way I check this using Oracle Enterprise Manager Console.
    4) Should I be adding a JMS provider within the OC4J for the application I am using before I do any of the above?
    Any help will be highly appreciated.
    Thanks
    Swapna

    Ok. I found my answers
    1) In order to configure Toplink Cache Coordination using JMS, do I use Oracle AS JMS or OJMS provider?
    Either of the one can be used. Here is what I found regarding the trade off
    OJMS and OracleAS JMS are both J2EE 1.3 compliant JMS providers from Oracle. OJMS has been integrated into OracleAS 10g using the JCA adapter while at the same time leveraging Advanced Queuing in the Oracle Database for persistence and recoverability. If database recoverability guarantees, SQL queriability, transparent application failover, message transformation, propagation are required then Oracle recommends using OJMS as the JMS provider.
    OracleAS JMS is a lightweight, in-memory/file based queuing system that provides a complete J2EE 1.3 JMS implementation. It is suited for applications that do not require Oracle specific JMS extensions or the recoverability guarantees that OJMS provides.
    2) Should I be configuring OJMS before I could use Oracle AS JMS?
    No. OracleAS JMS is always provided and preconfigured, except for the topics and queues, with the OC4J installation.
    3) If I am using Oracle 10.1.2 Application Server, will OJMS Database Schema be defined and the resource adapter deployed by default or is there a way I check this using Oracle Enterprise Manager Console.
    No. The schema needs to be created by the admin and OJMS needs to be configured as the JMS Provider using this schema.
    4) Should I be adding a JMS provider within the OC4J for the application I am using before I do any of the above?
    Yes, if not using Oracle AS JMS.
    Hope that was accurate.

  • Sync/Async - JMS receiver comm. channel not processing

    I have a Sync/Async scenario (without bpm) in PI 7.11:
    RFC -> PI -> JMS
    whereby the JMS receiver comm. channel does not fully process the message. 
    More specifically, the RFC sender comm. channel gets a message in and passes the message to the JMS channel, but that JMS channel within the RWB comm. channel log only shows the entry:
    - Message processing started
    The odd twist to this is that when we bring the PI server down, then back up again, (or wait a period of time, still trying to determine this period) the FIRST message attempt does successfully get processed, i.e. the first message on that JMS receiver comm. channel RWB log shows as:
    - Channel successfully processed the message: 08499236-387c-11e0-b002-000025bab2c2
    - Stored the correlation ID 08499236-387c-11e0-b002-000025bab2c2 of the request JMS message: ID:c3e2d840d4d8d4f24040404040404040c754dc12d8b54ec6  correponding to the XI message: 08499236-387c-11e0-b002-000025bab2c2
    - Message processing started
    (but then because of an issue on the target system, no response comes back, so then we'll additionally get the log entry:
    - Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: no message received
    Any suggestions appreciated on what I can check here to try and figure this out. Possibly because the first message eventually errors out, it is stopping the other subsequent msgs from getting processed...
    When I check the audit logs of a 'success' msg vs. a not-successful msg, the success msg has an entry (and subsequent entries) of:
    14.02.2011 12:50:19 Information Transform: transforming the payload ...
    14.02.2011 12:50:19 Information Transform: successfully transformed
    14.02.2011 12:50:19 Information ROB: entering RequestOnewayBean
    14.02.2011 12:50:19 Information ROB: forwarding the request message
    14.02.2011 12:50:19 Information ROB: leaving RequestOnewayBean
    14.02.2011 12:50:19 Information JMS Message was forwarded to the JMS provider succesfully."
    14.02.2011 12:50:19 Information XMB Message as Binary was forwarded to the SAP XI JMS service succesfully.
    14.02.2011 12:50:19 Information WRB: entering WaitResponseBean
    14.02.2011 12:50:19 Information WRB: retrieving the message for 08499236-387c-11e0-b002-000025bab2c2 ...
    wheras the non-success msg shows only:
    14.02.2011 12:55:30 Information Transform: transforming the payload ...
    14.02.2011 12:55:30 Information Transform: successfully transformed
    14.02.2011 12:55:30 Information ROB: entering RequestOnewayBean
    14.02.2011 12:55:30 Information ROB: forwarding the request message
    14.02.2011 12:55:30 Information ROB: leaving RequestOnewayBean
    So, we can see that the message is not "forwarded to the JMS provider..." in the non-success case.
    And also the  sxi_monitor shows these messages with a status of "Log version".
    Keith

    Hi Siddhesh - yes that was a while back and am trying to remember the resolution.  I have implemented sync/async bridges (as well as async/sync bridges) successfully, so I don't mind checking your settings, particularly I am interested in the settings within the Module tab of the JMS receiver.  I can then compare to mine if you'd like.  Also if you can let me know what underlying queuing system in that target system (e.g. MQSeries?) that would be great.
    Regards,
    Keith

  • 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

  • JMS Adapter Config issues with Plan.xml

    Hi All,
    I'm learning how to configure JMS Resources in WLS to use within a JMS adapter in my application. My approach so far has been :
    1. Configure Outbound Connection in JMS Adapter : eis/wls/Queue. I used the weblogic.jms.XAConnectionFactory as the Connection Factory.
    2. Create Queue within SOAJMSModule : jms/MyQueue and target - soa managed server.
    Updated the JMSAdapter.rar deployment and restarted the SOA server as well as the JMS module.
    3. Create JMS Adapter within JDeveloper to use jms/MyQueue as the destination and eis/wls/Queue as the JNDI source.
    On deployment and running, I see this following error. Apologies it is a bit difficult to trawl through. I did have a look in the Plan.xml and it definitely has an entry for this Adapter and the jndi-name. Any other approach?
    Oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'PostException' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. ExceptionManagement:JMSPostException [ PostException_ptt::PostException(body) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/wls/Queue'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/wls/Queue. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server Please make sure that the JCA connection factory and any dependent connection factories have been configured with a sufficient limit for max connections. Please also make sure that the physical connection to the backend EIS is available and the backend itself is accepting connections. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:575) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:381) at oracle.sysman.emas.view.wsmgt.WSView.invokeOperation(WSView.java:298) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.el.parser.AstValue.invoke(Unknown Source) at com.sun.el.MethodExpressionImpl.invoke(Unknown Source) at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53) at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1256) at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361) at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96) at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96) at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:475) at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:756) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:765) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:305) at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:101) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446) at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271) at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177) at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.wls.filter.SSOSessionSynchronizationFilter.doFilter(SSOSessionSynchronizationFilter.java:276) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:179) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.core.model.targetauth.EMLangPrefFilter.doFilter(EMLangPrefFilter.java:158) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111) at java.security.AccessController.doPrivileged(Native Method) at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313) at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413) at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94) at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161) at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(Unknown Source) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(Unknown Source) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(Unknown Source) at weblogic.servlet.internal.WebAppServletContext.execute(Unknown Source) at weblogic.servlet.internal.ServletRequestImpl.run(Unknown Source) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:207) at weblogic.work.ExecuteThread.run(ExecuteThread.java:176) Caused by: oracle.sysman.emSDK.webservices.wsdlapi.SoapTestException: Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'PostException' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. ExceptionManagement:JMSPostException [ PostException_ptt::PostException(body) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/wls/Queue'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/wls/Queue. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server Please make sure that the JCA connection factory and any dependent connection factories have been configured with a sufficient limit for max connections. Please also make sure that the physical connection to the backend EIS is available and the backend itself is accepting connections. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:260) at oracle.sysman.emSDK.webservices.wsdlparser.OperationInfoImpl.invokeWithDispatch(OperationInfoImpl.java:992) at oracle.sysman.emas.model.wsmgt.PortName.invokeOperation(PortName.java:729) at oracle.sysman.emas.model.wsmgt.WSTestModel.invokeOperation(WSTestModel.java:569) ... 81 more Caused by: javax.xml.ws.soap.SOAPFaultException: Exception occured when binding was invoked. Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'PostException' failed due to: JCA Binding Component connection issue. JCA Binding Component is unable to create an outbound JCA (CCI) connection. ExceptionManagement:JMSPostException [ PostException_ptt::PostException(body) ] : The JCA Binding Component was unable to establish an outbound JCA CCI connection due to the following issue: BINDING.JCA-12510 JCA Resource Adapter location error. Unable to locate the JCA Resource Adapter via .jca binding file element <connection-factory/> The JCA Binding Component is unable to startup the Resource Adapter specified in the <connection-factory/> element: location='eis/wls/Queue'. The reason for this is most likely that either 1) the Resource Adapters RAR file has not been deployed successfully to the WebLogic Application server or 2) the '<jndi-name>' element in weblogic-ra.xml has not been set to eis/wls/Queue. In the last case you will have to add a new WebLogic JCA connection factory (deploy a RAR). Please correct this and then restart the Application Server Please make sure that the JCA connection factory and any dependent connection factories have been configured with a sufficient limit for max connections. Please also make sure that the physical connection to the backend EIS is available and the backend itself is accepting connections. ". The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution. at oracle.j2ee.ws.client.jaxws.DispatchImpl.throwJAXWSSoapFaultException(DispatchImpl.java:1012) at oracle.j2ee.ws.client.jaxws.DispatchImpl.invoke(DispatchImpl.java:803) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.synchronousInvocationWithRetry(OracleDispatchImpl.java:235) at oracle.j2ee.ws.client.jaxws.OracleDispatchImpl.invoke(OracleDispatchImpl.java:106) at oracle.sysman.emSDK.webservices.wsdlapi.dispatch.DispatchUtil.invoke(DispatchUtil.java:256) ... 84 more
    The deployment plan reads as follows :
    <deployment-plan xmlns="http://xmlns.oracle.com/weblogic/deployment-plan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/deployment-plan http://xmlns.oracle.com/weblogic/deployment-plan/1.0/deployment-plan.xsd" global-variables="false">
    <application-name>connectors</application-name>
    <variable-definition>
    <variable>
    <name>ConnectionInstance_eis/wls/Queue_JNDIName_13401799388390</name>
    <value>eis/wls/Queue</value>
    </variable>
    <variable>
    <name>ConfigProperty_ConnectionFactoryLocation_Value_13401801874110</name>
    <value>weblogic.jms.XAConnectionFactory</value>
    </variable>
    </variable-definition>
    <module-override>
    <module-name>JmsAdapter.rar</module-name>
    <module-type>rar</module-type>
    <module-descriptor external="false">
    <root-element>weblogic-connector</root-element>
    <uri>META-INF/weblogic-ra.xml</uri>
    <variable-assignment>
    <name>ConnectionInstance_eis/wls/Queue_JNDIName_13401799388390</name>
    <xpath>/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="eis/wls/Queue"]/jndi-name</xpath>
    <origin>planbased</origin>
    </variable-assignment>
    <variable-assignment>
    <name>ConfigProperty_ConnectionFactoryLocation_Value_13401801874110</name>
    <xpath>/weblogic-connector/outbound-resource-adapter/connection-definition-group/[connection-factory-interface="oracle.tip.adapter.jms.IJmsConnectionFactory"]/connection-instance/[jndi-name="eis/wls/Queue"]/connection-properties/properties/property/[name="ConnectionFactoryLocation"]/value</xpath>
    </variable-assignment>
    </module-descriptor>
    <module-descriptor external="false">
    <root-element>connector</root-element>
    <uri>META-INF/ra.xml</uri>
    </module-descriptor>
    <module-descriptor external="true">
    <root-element>wldf-resource</root-element>
    <uri>META-INF/weblogic-diagnostics.xml</uri>
    </module-descriptor>
    </module-override>
    <config-root>E:\oracle\product\middleware\11.1.1\soa_11.1\soa\connectors\plan</config-root>
    </deployment-plan>
    Thanks
    JB
    Edited by: 939260 on Jun 20, 2012 5:13 AM

    Hi JB,
    Please follow the below steps from beginning...
    1. Create the JMS Server in the Admin Console, the target server for the same should be the soa server
    2. create new JMS Module.
    3. Create new Connection factory in resources, give your JNDI names, the target servers should be the admin and the soa.
    4. create new queue, give the JNDI names, the target server should be the JMS Server which you have created in the step 1 above.
    5. Now go to deployments, slect the JMS adapter, click update, and say redeploy with the location of JMS-plan.xml given below...
    6. Now inside the composite while configuring the JMS adapter, select the queue which you have created above.
    If you have followed the abpve steps correctly, you should not face any problem.
    Hope this helps,
    N

Maybe you are looking for

  • Can't transfer video to iPod either, but different problem. :(

    So I just got my iPod and am trying to put mpgs that I've got on my computer on the pod. I know that I'm supposed to put the file in iTunes and then convert the selection, but when I do I get an error message (-3000, which is an Invalid Component ID)

  • Content conversion sender multi levels

    hi, i need to map a flat file to this structure: header : 1..1 item: 0..unbounded item_header : 1..1 item_data:  0..unbounded field1 : 1..1 field2:  1..1 field3 : 1..1 footer: 1..1 how can i achive that with content conversion and what should i write

  • Alternative Items in One Order / FS Quotation

    Hi, we are currently working on the following problem, but cannot figure it out how to make it work. May be an easy question... If I have multiple options in one quote, how would I handle this? Via item relationships? It is the same product but diffe

  • UK Oracle User Group (UKOUG) fires back at suggestion that customers have 'hostile' relationship with Oracle

    In a 24 November article in Computing, the United Kingdom's leading business technology publication, the UK Oracle User Group (UKOUG) differed with the suggestion from the Campaign for Clear Licensing that customers have a hostile relationship with O

  • How do I retrieve document information from the portal tables?

    Hi, I'm really stuck on this and any help would be much appreciated. I want to select out document information using the categories and perspectives as search criteria, I've written the following select statement but am not sure that this is the corr