JMS - Use question

Hey Folks,
Just reading a book on JMS for the first time and i just have a few philosophical questions on the use of it. In the book it gives me an example of setting up a JMS queue and then using a MDB to receive a message and then does a credit check on a customer!!
So after one has gone through all the hassle of configuring your factories,setting up your queue, creating your MDB and then configuring it your are finally ready to write code to do your business requirements!!
Now my first thought were, why would i do all that work just to do a credit check on a customer asynchronously, if i was using plain old POJO�s , why wouldnt i just spin off a thread to do this for me in the backround instead of having to do all the above?? So what am i missing here??
Next point that i need some clarity on is more related to a production setup. Say i have 10 nodes, does one just create one JMS channel that all 10 nodes use or do they each have a channel for every node?? If they have a channel for every node then why would i use JMS?? Ok loose coupling, great but i can get that if i create my own observer pattern, what extra will it give me than a normal observer pattern?? I assume in the above scenario that you have no external applications listening, so everything that needs to listen for the message is in your JVM!! I understand if you have SAP or any other external applications listening
Last but not least, is it fair to make a comparison JMS to tibco messaging bus?? If so why, if not why?? ;)
Thanks for any help on the matter, like i said im just reading up on it now and need a few thoughts cleared up!!
Cheers,
LL

> So when you say chained, i take it you can set the
order in which you want your beans to be called
first(assuming in a topic scenario where you have
several listeners)?? is that possible with JMS?? if
so how??
We've written a custom Process Manager that receives messages and uses XPath and XSL to coordinate several JMS applications (all of our messages are XML). We typically don't use topics because we don't want multiple applications getting the same message. Each application does its work in turn, not at the same time.
> Yeh i can see how it would work in this scenario but
you still have other options to solve this problem
without the need of JMS!!
There's always more than one way to solve a problem.
> i suppose im looking for a scenario where i would say
to myself, yes thats a job for JMS!! And in this
scenario exclude the need to talk to external
applications!!
I wouldn't want to design a large system with multiple teams working on multiple applications, each with its own processing needs without JMS. Tuning is pretty easy. Adding more horsepower at any point in the chain is pretty easy.
But it may be that I just reach for the tools that I am most familiar with.
Dwayne

Similar Messages

  • ClassCastException in my WS over JMS using JAX-RPC in WLS 10.3...

    Hi,
    I am developing a WS over JMS using JAX-RPC in WLS 10.3 (I tried both WLS 10.3.0 and 10.3.1). And when WLS is trying to marshal the response, it throws "ClassCastException":
    ava.lang.ClassCastException: org.tmforum.mtop.nrf.xsd.com.v1.EquipmentHolderEnumType cannot be cast to java.lang.String
    at com.bea.staxb.runtime.internal.StringTypeConverter.print(StringTypeConverter.java:45)
    at com.bea.staxb.runtime.internal.SimpleContentBeanMarshaller.print(SimpleContentBeanMarshaller.java:52)
    at com.bea.staxb.runtime.internal.RuntimeBindingProperty.getLexical(RuntimeBindingProperty.java:154)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeCharData(PushMarshalResult.java:639)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:413)
    at com.bea.staxb.runtime.internal.SimpleContentRuntimeBindingType.accept(SimpleContentRuntimeBindingType.java:46)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:400)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:400)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:400)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalType(PushMarshalResult.java:153)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visitProp(PushMarshalResult.java:631)
    at com.bea.staxb.runtime.internal.PushMarshalResult.visit(PushMarshalResult.java:403)
    at com.bea.staxb.runtime.internal.ByNameRuntimeBindingType.accept(ByNameRuntimeBindingType.java:89)
    at com.bea.staxb.runtime.internal.PushMarshalResult.writeContents(PushMarshalResult.java:195)
    at com.bea.staxb.runtime.internal.PushMarshalResult.marshalTopType(PushMarshalResult.java:96)
    at com.bea.staxb.runtime.internal.MarshallerImpl.marshalBindingType(MarshallerImpl.java:302)
    at com.bea.staxb.runtime.internal.MarshallerImpl.marshalElement(MarshallerImpl.java:383)
    at weblogic.wsee.bind.runtime.internal.LiteralSerializerContext.marshalElement(LiteralSerializerContext.java:82)
    at weblogic.wsee.bind.runtime.internal.BaseSerializerContext.internalSerializeElement(BaseSerializerContext.java:197)
    at weblogic.wsee.bind.runtime.internal.BaseSerializerContext.serializeElement(BaseSerializerContext.java:128)
    at weblogic.wsee.codec.soap11.SoapEncoder.encodePart(SoapEncoder.java:322)
    at weblogic.wsee.codec.soap11.SoapEncoder.encodeReturn(SoapEncoder.java:228)
    at weblogic.wsee.codec.soap11.SoapEncoder.encodeParts(SoapEncoder.java:215)
    at weblogic.wsee.codec.soap11.SoapEncoder.encode(SoapEncoder.java:134)
    at weblogic.wsee.codec.soap11.SoapCodec.encode(SoapCodec.java:134)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.encode(CodecHandler.java:104)
    at weblogic.wsee.ws.dispatch.server.CodecHandler.handleResponse(CodecHandler.java:51)
    at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:287)
    at weblogic.wsee.handler.HandlerIterator.handleResponse(HandlerIterator.java:271)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.callHandleResponse(ServerDispatcher.java:341)
    at weblogic.wsee.ws.dispatch.server.ServerDispatcher.dispatch(ServerDispatcher.java:189)
    at weblogic.wsee.ws.WsSkel.invoke(WsSkel.java:80)
    at weblogic.wsee.server.jms.JmsWebservicesMessageDispatcher.dispatchMessage(JmsWebservicesMessageDispatcher.java:175)
    at weblogic.wsee.server.jms.JmsQueueListener.processMessage(JmsQueueListener.java:397)
    at weblogic.wsee.server.jms.JmsQueueListener.onMessage(JmsQueueListener.java:392)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4585)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4271)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3747)
    at weblogic.jms.client.JMSSession.access$000(JMSSession.java:114)
    at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5096)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    The "EquipmentHolderEnumType" is generated JAXB object (obviously it is not a String) from WSDL using WLS wsld generation. And here is how that Enum is defined in XSD:
    <xsd:simpleType name="EquipmentHolderEnumType">
    <xsd:annotation>
    <xsd:documentation>
    <p>Equipment holder type</p>
    </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
    <xsd:enumeration value="MINOR_EXT"/>
    <xsd:enumeration value="rack"/>
    <xsd:enumeration value="shelf"/>
    <xsd:enumeration value="sub_shelf"/>
    <xsd:enumeration value="slot"/>
    <xsd:enumeration value="sub_slot"/>
    <xsd:enumeration value="remote_unit"/>
    <xsd:enumeration value="remote_slots"/>
    </xsd:restriction>
    </xsd:simpleType>
    My question is why WLS is trying to cast the EnumType to String when marshalling it? How can I fix this exception?
    Also, second question: my WS will take some time to get the response ready (1+ minute). I was using WLS console test client to test my WS. And the test client always got time out:
    java.io.IOException: Request timed out
    at weblogic.wsee.connection.transport.jms.JmsTransport.receive(JmsTransport.java:356)
    at weblogic.testclient.WebServiceOperation.invokeJms(WebServiceOperation.java:463)
    at weblogic.testclient.WebServiceOperation.addWeblogicHeadersAndInvoke(WebServiceOperation.java:382)
    at weblogic.testclient.WebServiceOperation.invokeComplex(WebServiceOperation.java:305)
    at weblogic.testclient.WebServiceOperation.invoke(WebServiceOperation.java:626)
    How can I configure the WLS console test client so that I can increase teh timeout setting for the client?
    Thank you very much!
    Jian

    Hi, pls how did you solve your problem exatly? Because I have similar problem without solution.
    I have WSDL contract like:
    <xs:element name="duration">
    <xs:complexType>
    <xs:simpleContent>
    <xs:extension base="durationType">
    <xs:attribute name="days" type="xs:int" use="optional"/>
    </xs:extension>
    </xs:simpleContent>
    </xs:complexType>
    </xs:element>
    <xs:simpleType name="durationType">
    <xs:restriction base="xs:string">
    <xs:enumeration value="PERIODIC"/>
    <xs:enumeration value="PERPETUAL"/>
    <xs:enumeration value="CREDIT_DAYS"/>
    </xs:restriction>
    </xs:simpleType>
    And client site generated by WLS ant task "generate-from-wsdl" with "JAXRPC" option and when I use calling of this client and exeption was appeared:
    FaultString [com.company.DurationType] FaultActor [null] Detail [<detail><java:string>java.lang.ClassCastException: com.company.DurationType</java:string></detail>];
    Note: all other messages are correct.
    thx

  • Poor Performance when using Question Pooling

    I'm wondering if anyone else out there is experiencing
    Captivate running very slow when using question pooling. We have
    about 195 questions with some using screenshots in jpeg format.
    By viewing the Windows Task Manager, CP is using anywhere
    between 130 to 160 K worth of memory. What is going on here? It's
    hammering the system pretty hard. It takes a large effort just to
    reposition the screenshot or even move a distractor.
    I'm running this on a 3.20GHz machine with 3GB of RAM.
    Any Captivate Gurus out there care to tackle this one?
    Help.

    MtnBiker1966,
    I have noticed the same problem. I only have 60 slides with
    43 questions and the Question Pool appears to be a big drain on
    performance. Changing the buttons from Continue to Go to next slide
    helped a little, but performance still drags compared to not using
    a question pool. I even tried reducing the number of question
    pools, but that did not affect the performance any. The search
    continues.
    Darin

  • SOAP to JMS using Sync/Async bridge - configuration confirmation needed

    Hi group,
    Since I'm experincing error in a scenario using sync/async bridge in jms adapter I really would like a confirmation on my configuration.
    For a simple SOAP to JMS scenario is it then correct that all I need is;
    1) 2 synchronous message interfaces, 1 inbound and 1 outbound
    2) 1 Receiver determination
    3) 1 Interface determination
    4) 1 Receiver agreement (JMS adapter with module configuration)
    5) 2 Sender agreements (in my case 1 soap and 1 JMS adapter - the later with module configuration).
    6) The sender and receiver JMS adapters point to different MQ queues (request and response queues)
    7) The sender agreement for the JMS adapter uses my synchronous, inbound message interface (isn't this really just a "dummy" to actually fetch data from response queue - meaning that the actual utilized business system/service, MI and namespace are unimportant, since the module will make the adapter notify the listening module in the receiver JMS adapter?)
    Best Regards,
    Daniel

    Hi, thanks for your reply.
    I'm familiar with the links provided. I believe everything is configured as it should be, but since I get error I would like to have my configuration confirmed. Neither the weblog (or SAP guide) are detailed enough to convince me 100% that my configuration is correct. Surely the problem could be on the MQ side, but before going into that, I want to be sure that its not on XI-side.
    So I really would like confirmation on the steps/question that I wrote:-)
    Best Regards,
    Daniel

  • JMS queue question

    Hi all,
    I am using Weblogic Application Server and say I have 1000 messages in a JMS Queue say "Q1".
    Q1. How are these messages picked up from the queues? i.e. by a thread etc.
    Q2. If they are picked up by threads then who configures these threads? Are they default threads created by the Weblogic Application Server or are user-created threads?
    Q3. Also, if 20 threads are involved in picking the messages from the queue and of them one thread snaps while picking the message then what will happen? and what will be the solution??
    Thanks.

    Q1/Q2*:
    The answer to your question is "its provider specific".
    You will need someone who explicitly works on weblogic to provide specifics so you may want to utilize a weblogic specific forum instead of a generic JMS forum
    I'll try to answer this in very generic terms that should apply to all providers:
    If you are receiving messages with an MDB: there is a thread pool associated with the resource adapter which plugs the JMS provider into the server. This is generally configured as part of the application server configuration. That pool dictates the maximum number of threads which can call the same MDB's at the same time.
    If you are receiving messages with a Servlet: In this case, you are probably calling receive within the servlet. That will use the thread provide by the webstack which is executing the servlet
    If you are receiving messages in an AppClient or Standalone provider: You are using your own thread if you call receive(), or a thread provided by the provider if you are calling onMessage()
    In all cases, the provider may be allocating additional threads "beneath the covers" to process those messages.
    Q3*:
    I'm not quite sure what snaps means. Threads run until they exit. I'm going to guess that the question is "what if the MDB or code throws a RuntimeException". If you mean something different, please supply a more specific description of the error.
    This one depends on what whether or not you are using transactions and how you are receiving those messages.
    If you are using transactions in an MDB: the transaction will rollback and the message will be redelivered to another consumer.
    In all other cases, it depends on the specifics (I was going to list them but it seems like to much work for a Friday afternoon).
    If you are using a non-transacted or non-MDB method to retrieve the messages, let me know and I can tell you how, per the JMS and J2EE specs, it should work. I'll need to know acknowledge mode/transaction, type of client and if you are calling receive() or onMessage().
    -- Linda

  • JMS : Using SUN MQUEUE as a JMS Provider

    Hi guys,
    I'm having quite some trouble in configuring a JMS scenario...
    I'm using SUN MQueue as a JMS Provider. I've installed the respective drivers, imq.jar, fscontext.jar and jms.jar.
    I had no trouble in deploying this drivers on the SDM.
    Now, after creating a receiver JMS communication channel, I get the following error on the RWB:
    Error during channel initialization; exception trace: java.lang.NoSuchMethodException: com.sun.messaging.QueueConnectionFactory.(java.lang.String)
    at java.lang.Class.getConstructor0(Class.java:1937)
    at java.lang.Class.getConstructor(Class.java:1027)
    at com.sap.aii.af.service.jms.WorkerJMSSender.init(WorkerJMSSender.java:474)
    I've searched XI logs, in order of getting some light on the subject...This was what I've got:
    #com.sap.aii.af.service.jms.WorkerJMSSender.init(WorkerHandler moduleHandler, Object para)#J2EE_GUEST#0####975a11b0c58b11dbce6700145e1855ec#SAPEngine_Application_Thread[impl:3]_19##0#0#Error##Java###Unable to create the QueueConnectionFactory due to #1#SUNMQUEUE_IP:SUNMQUEUE_Port#
    My question is what is #1#....
    I've read a few forum threads, but none of them can clarify my error....
    I've tried the same scenario using Business Connector...Of course, in BC I had to create 2 JAVA services, one for sending and another for receiving messages...there was no problem with this, I did managed to send JMS Messages to SUN MQUEUE...
    Can anyone give a hint....anything...?

    Hi,
    This is something related to JMS Adapter configuration settings and security ...
    please check .. all your settings..
    <i>This is the SonicMQ implementation of the QueueConnectionFactory.
    A JMS client, in this case the adapter, uses a QueueConnectionFactory object to generate QueueConnection objects of a JMS provider.
    The default value for SonicMQ 3.0 is progress.message.jclient.QueueConnectionFactory</i>
    See also..below links
    http://help.sap.com/saphelp_nw04/helpdata/en/c1/739c4186c2a409e10000000a155106/content.htm
    Installation problem: Central Instance 6.40 Oracle on Linux 32
    Regards
    Chilla..

  • Workflow and General Use Questions

    Hello,
    I'll apologize right off the bat for these novice question because I'm sure the information is probably somewhere in the forum, I just haven't been able to find it. I just purchased Aperture after completing the demo as my library is getting too large to manage using standard file folders. I'm now trying to figure out the best practices for workflow and general use before I invest some serious time into importing and keywording all my pictures.
    1) Store files in the there current location, or in the Aperture Library? It seems to me that once they are moved to the Aperture library, you can only access them from within Aperture. I'm thinking I would be better off leaving them in their current location. For one, if I want to quickly grab a picture as an attachment to an email or something it seems easier to grab it from the standard folders. Second (and more important) I do not have room to keep all my pictures on my Macbook, thus most of them are stored on the Time Capsule.
    So... Keeping photos in their current location appears to be the best choice for me even though it adds an additional step every time I bring in new photos from my camera. Does this sound right?
    2) Is there a way to mark the photos that I have uploaded to my website (Smugmug)? Ideally, I would like to badge photos that have already been uploaded so I can quickly recognize them and ensure I'm not duplicating. I've considered using the rating, or keywords to indicate that a photo has been uploaded but both methods have disadvantages.
    3) Any suggestions for general workflow and organization resources (tutorials, books, websites, etc.)? I've looked at the videos on Apple's site but they obviously didn't get that detailed.
    Thanks for the help, sorry for the length.

    I recommend to Manage by Reference with Master image files stored on external hard drives (note that Aperture defaults to a Managed-Library configuration rather than a Referenced-Masters Library). Especially important for iMacs and laptops with a single internal drive. The workflow as described below in an earlier post of mine uses a Referenced-Masters Library.
    I feel pretty strongly that card-to-Aperture or camera-to-Aperture handling of original images puts originals at unnecessary risk. I suggest this workflow, first using the Finder (not Aperture) to copy images from CF card to computer hard drive:
    • Remove the memory card from the camera and insert it into a memory card reader. Faster readers and faster cards are preferable.
    • Finder-copy images from memory card to a labeled folder on the intended permanent Masters location hard drive.
    • Eject memory card.
    • Burn backup hard drive or DVD copies of the original images (optional strongly recommended recommended backup step).
    • Eject backup hard drive(s) or DVDs.
    • From within Aperture, import images from the hard drive folder into Aperture selecting "Store files in their current location." This is called "referenced images." During import is the best time to also add keywords, but that is another discussion.
    • Review pix for completeness (e.g. a 500-pic shoot has 500 valid images showing in Aperture).
    • Reformat memory card in camera, and archive originals off site on hard drives and/or on DVDs.
    Note that the "eject" steps above are important in order to avoid mistakenly working on removable media/backups.
    Also note with a Referenced-Masters Library that use of the "Vault" backup routine backs up the Library only, not the Masters. Masters should be separately backed up, IMO a good thing from a workflow and data security standpoint.
    Max out RAM in your MB and keep the internal drive less than 70% full.
    Good luck!
    -Allen Wicks

  • Quiz slide not advance when using question pools and advance answer options?

    Hi,
    I am using CP 5.5. I created a small test where I have just 2 question in a question pool.  The questions are using the advanced answer options to show some specific feedback. When I insert the questions in to the project using a random question slide, after the user answers where you should be able to press Y or click to move on, I click, but nothing happens.  You can't get off the quiz slide.  The quiz slides work fine when they are inserted in the project as reqular quiz slides, but not when they are being pulled from a question pool.
    Is this a known bug? Is there a workaround? Anyone else run in to this?
    Thanks!
      Lori

    I was having the same problem on the last Random Question slide (total 10 RQ slides), and was able to fix it by following the next steps:
    Make sure Quiz: Pass or Fail actions are set to Continue for both Passing and Failing actions in the quiz preferences.
    Delete the RQ slide not advancing, then duplicate one of the RQ slides working, and assign your question pool to the new slide if different from the original duplicate. This step will make sure you are using a good working RQ slide.
    For some reason, my last RQ slide was corrupted and wasn't advancing to the Score slide at the end of the quiz.
    I can finally finish this project.
    Good luck.

  • JMS Adapter question

    Hi,
    Is it possible to use a different jndi-factory other than teh default WL one: weblogic.jndi.WLInitialContextFactory?
    also if my jms accepts only client cert ssl authentication, is it possible to setup this in Oracle CEP? I am getting all kinds of errors
    when I try to do any of the above and the documentation seems to layout only default scenarios so not enough details. I am getting this error:
    org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.Exception: Error initializing JMS connection: javax.naming.NoInitialContextException: The JNDI initial context factory "com.sun.jndi.fscontext.RefFSContextFactory" either cannot be loaded or it does not exist.
    I added all required jar files for this jndi-factory in runtime lib in Manifest.mf but it is not loading at all.
    Anybody tried something similar to this? any pointers?
    Thanks,
    Firas

    Hi Andy,
    I changed it to Debug and got the following stack:
    <Mar 10, 2010 2:53:46 PM EST> <Notice> <Deployment> <BEA-2045000> <The application bundle "mmxHelloWorldd" was deployed successfully to file:/E:/oracle/Middleware/user_projects/domains/ocep_domain/defaultserver/applications/mmxHelloWorldd/mmxHelloWorldd.jar with version 1268250825479>
    <Mar 10, 2010 2:53:50 PM EST> <Debug> <Adapters> <BEA-000000> <InboundJmsAdapter.beforeResume was called>
    <Mar 10, 2010 2:53:50 PM EST> <Debug> <Adapters> <BEA-000000> <JNDI lookup failed for QueueConnectionFactory from provider file://E:/Firas/mmx/jndi/bindings/
    java.lang.ClassCastException: javax.naming.Reference
         at com.bea.wlevs.adapters.jms.JmsAdapter.beforeResume(JmsAdapter.java:109)
         at com.bea.wlevs.adapters.jms.InboundJmsAdapter.beforeResume(InboundJmsAdapter.java:74)
         at com.bea.wlevs.adapters.jms.InboundJmsAdapter$$FastClassByCGLIB$$fc18e7ee.invoke(<generated>)
         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
         at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.wlevs.ede.spi.AbstractStageProxy.invoke(AbstractStageProxy.java:78)
         at com.bea.wlevs.eventstore.recplay.RecordPlayProxy.invoke(RecordPlayProxy.java:255)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.wlevs.ede.spi.AbstractStageProxy.invoke(AbstractStageProxy.java:78)
         at com.bea.wlevs.monitor.internal.MonitoringProxy.invoke(MonitoringProxy.java:165)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
         at com.bea.wlevs.adapters.jms.InboundJmsAdapter$$EnhancerByCGLIB$$b6867280.beforeResume(<generated>)
         at com.bea.wlevs.spring.ActivationBeanPostProcessor.preProcessBeforeContextResume(ActivationBeanPostProcessor.java:27)
         at com.bea.wlevs.spring.DeferredBeanPostProcessor.beforeResume(DeferredBeanPostProcessor.java:33)
         at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:114)
         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.finishRefresh(AbstractApplicationContext.java:736)
         at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
         at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
         at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136)
         at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
         at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    >
    <Mar 10, 2010 2:53:50 PM EST> <Error> <Deployment> <BEA-2045010> <The application context "mmxHelloWorldd" could not be started: org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.Exception: JNDI lookup failed for QueueConnectionFactory from provider file://E:/Firas/mmx/jndi/bindings/
    org.springframework.beans.FatalBeanException: Error in context lifecycle initialization; nested exception is java.lang.Exception: JNDI lookup failed for QueueConnectionFactory from provider file://E:/Firas/mmx/jndi/bindings/
         at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:136)
         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.finishRefresh(AbstractApplicationContext.java:736)
         at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
         at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
         at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136)
         at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
         at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Caused By: java.lang.Exception: JNDI lookup failed for QueueConnectionFactory from provider file://E:/Firas/mmx/jndi/bindings/
         at com.bea.wlevs.adapters.jms.JmsAdapter.beforeResume(JmsAdapter.java:120)
         at com.bea.wlevs.adapters.jms.InboundJmsAdapter.beforeResume(InboundJmsAdapter.java:74)
         at com.bea.wlevs.adapters.jms.InboundJmsAdapter$$FastClassByCGLIB$$fc18e7ee.invoke(<generated>)
         at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
         at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
         at com.bea.wlevs.ede.spi.AbstractStageProxy.invoke(AbstractStageProxy.java:78)
         at com.bea.wlevs.eventstore.recplay.RecordPlayProxy.invoke(RecordPlayProxy.java:255)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at com.bea.wlevs.ede.spi.AbstractStageProxy.invoke(AbstractStageProxy.java:78)
         at com.bea.wlevs.monitor.internal.MonitoringProxy.invoke(MonitoringProxy.java:165)
         at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
         at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
         at com.bea.wlevs.adapters.jms.InboundJmsAdapter$$EnhancerByCGLIB$$b6867280.beforeResume(<generated>)
         at com.bea.wlevs.spring.ActivationBeanPostProcessor.preProcessBeforeContextResume(ActivationBeanPostProcessor.java:27)
         at com.bea.wlevs.spring.DeferredBeanPostProcessor.beforeResume(DeferredBeanPostProcessor.java:33)
         at com.bea.wlevs.spring.ApplicationContextLifecycle.onApplicationEvent(ApplicationContextLifecycle.java:114)
         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.finishRefresh(AbstractApplicationContext.java:736)
         at org.springframework.osgi.context.support.AbstractOsgiBundleApplicationContext.finishRefresh(AbstractOsgiBundleApplicationContext.java:235)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext$4.run(AbstractDelegatedExecutionApplicationContext.java:358)
         at org.springframework.osgi.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
         at org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.completeRefresh(AbstractDelegatedExecutionApplicationContext.java:320)
         at org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor$CompleteRefreshTask.run(DependencyWaiterApplicationContextExecutor.java:136)
         at org.springframework.scheduling.commonj.DelegatingWork.run(DelegatingWork.java:61)
         at weblogic.work.commonj.CommonjWorkManagerImpl$WorkWithListener.run(CommonjWorkManagerImpl.java:196)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    >
    <Mar 10, 2010 2:53:50 PM EST> <Notice> <Deployment> <BEA-2045001> <The application bundle "mmxHelloWorldd" was undeployed successfully>

  • How create JMS using jboss server

    Hi
    I am new to JMS, as i need to know how to create a JMS client in JBoss, i need complete details about jms topic/queue, complete details including the configuration in jboss to create a sample jms client.
    Thanks in advance.
    regards
    Javith

    Hi Javith
    The top three links provided in a Google search 'jboss jms tutorial' look like they'd cover this pretty well -- depending on if you're using JMS inside the JavaEE environment, or your using JMS directly. We might be able to help you more if you were trying to use GlassFish Message Queue and/or GlassFish Enterprise Server.
    Good Luck
    -- Ed

  • JMS using JBoss !!!

    Hey,
    ich just have a problem realizing jms over the jboss server. Actually, if you want to implement a JMS-Producer or JMS-Consumer you need to define a �*-servie.xml� file which hast to be copied in the deployed directory of the server and it has to be in Classpath off the consumer. So this file hast to be on the client side as well. So, is there a way to put the information of the �-service.xml� in the code of the client, so that it don�t have to be in the classpath any more? I need that for a very special implementation
    kind regards
    Chris

    Hi Javith
    The top three links provided in a Google search 'jboss jms tutorial' look like they'd cover this pretty well -- depending on if you're using JMS inside the JavaEE environment, or your using JMS directly. We might be able to help you more if you were trying to use GlassFish Message Queue and/or GlassFish Enterprise Server.
    Good Luck
    -- Ed

  • Oracle JMS using AQ throwing InvalidDestinationException

    While creating Queue(AQJMS) using Application-Client.xml as shown below iam getting the below shown error. I have configured the Oracle JMS Provider and datasource on Server . Can you Please suggest me what has to be done. Iam using Oracle 10g AS(10.1.2).
    Error
    javax.jms.InvalidDestinationException: Destination "JMSUSER.demoQueue" has inval id type "class oracle.jms.AQjmsDestination" and cannot be used with OC4J JMS.
    at com.evermind.server.jms.EvermindDestination.checkDestination EvermindDestination.java:262)
    at com.evermind.server.jms.EvermindMessageProducer.<init>(EvermindMessageProducer.java:61)
    at com.evermind.server.jms.EvermindQueueSender.<init>(EvermindQueueSender.java:50)
    at com.evermind.server.jms.EvermindQueueSession.createSender(EvermindQueueSession.java:91)
    at mypackage.Test.enqueue(Test.java:107)
    at mypackage.Test.<init>(Test.java:37)
    at mypackage.Test.main(Test.java:48)
    [application-client.xml]
    <resource-ref>
    <res-ref-name>jms/YourQueueConnectionFactory</res-ref-name>
    <res-type>javax.jms.QueueConnectionFactory</res-type>
    <res-auth>Application</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
    <resource-env-ref>
    <resource-env-ref-name>jms/demoQueue</resource-env-ref-name>
    <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
    </resource-env-ref>
    [orion-application-client.xml]
    <resource-ref-mapping
    name="jms/YourQueueConnectionFactory"
    location="java:comp/resource/OJMSReference/QueueConnectionFactories/someQcf" />
    <resource-env-ref-mapping name="jms/demoQueue" location="java:comp/resource/OJMSReference/Queues/jmsuser.demoQueue"/>
    Thanks in Advance for the help.

    no not required. Foreign JMS for Weblogic is independent of OSB. It will work with out installation of OSB.
    Manoj

  • SOAP/JMS using SOA Suite 11g

    Dear All
    Can someone give a pointer - how to expose service components using SOAP/JMS in SOA Suite 11g?
    I am using SOA Suite 11.1.1.5. Say we have a synchronous request-response operation - searchCustomer(SearchParam search) returns a Customer information (i.e. input type is SearchParam and output type is Customer).
    How can I implement this service using SOAP over JMS?
    Regards,
    sibendu

    Refer this blog from Biemond.
    Java / Oracle SOA blog: SOAP over JMS with Oracle Service Bus 11g&lt;/title&gt;&lt;link type='text/css' rel='stylesheet'…

  • JMS using JNDI

    All,
    I have a fundamental question. Say for example I have given the JNDI binding information to a external application who will read and write from the message server. Would the application able to create the queues (new) on our message server wiht our knowledge. If yes how can we stop them doing that.
    Thanks
    RK

    If they only have a JNDI interface, then they should not be able to create destinations in your JMS server. Via JNDI the clients can only to see the destinations that the JMS server has added to the JNDI tree.

  • Asynchronous Request-Response in JMS using OSB 11g

    Hi All,
    I am using OSB11g.
    I have a scenario where I want to post a request into a JMS requestQueue, and without waiting for the response, should continue posting messages into the queue.
    The response will be posted by a third party into a JMS responseQueue.
    How to go ahead with this scenario? Is there any way to link the request & response in asynchronous calls like this?
    Thanks in advance!!
    Regards,
    Karthik

    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

Maybe you are looking for