2 Replies Latest reply on Nov 1, 2005 7:39 PM by 456169

    Problem of using Procedure in iStudio

    456169
      I have a problem of using the Procedure (synchronous message) in iStudio which is for some reason the oai hub does not deliver the message back to the procedure receive reply queue.

      Here is the scenario:

      REQ_QUEUE_1 ---------------> OAI_HUB ---------------> REQ_QUEUE_2 (Proc IN)

      RES_QUEUE_1 <--------------- OAI_HUB <--------------- RES_QUEUE_2 (Proc OUT)

      Basically, a web app sent a message to REQ_QUEUE_1, then the OAI_HUB picked-up the message from REQ_QUEUE_1 and delivered the message on REQ_QUEUE_2.

      Then, an EJB MDB app picked-up the message from REQ_QUEUE_2, did some process, then sent it back on RES_QUEUE_2.

      Then, OAI_HUB picked-up the message from RES_QUEUE_2, then IT DID NOTHING.

      I checked the OAI_HUB queue and there's no messages in the HUB queue. I didn't know where the message went/disappeared.

      However, I have no problem whatsoever when using the EVENTS (publish and subscribe) paradigm instead of the PROCEDURES paradigm.

      So, I think I must be missing something. Here are what I did when I create the procedure:
      1. Create common views procedure
      2. Create Invoke Procedure (Message Type: AQ):
      a. define app view
      b. define mapping IN
      c. define mapping OUT
      d. set the AQ queue (in deploy tab):
      - Send Request: REQ_QUEUE_1
      - Receive Reply: RES_QUEUE_1
      3. Create Implement Procedure (Message Type: AQ):
      a. define app view
      b. define mapping IN
      c. define mapping OUT
      d. I don't do anything on define correlation fields
      e. set the AQ queue (in deploy tab):
      - Receive Request: REQ_QUEUE_2
      - Send Reply: RES_QUEUE_2

      I don't know if I'm doing the above step correctly or not or perhaps I'm missing something but one thing for sure that the OAI_HUB never send the response back to RES_QUEUE_1. But I have no problem when using the EVENTS paradigm though.

      I know someone in this forum must have done this before, so I was wondering if you kindly give me some pointer what I'm doing wrong here.

      Thank You,

      Edward
        • 1. Re: Problem of using Procedure in iStudio
          416900
          Edward,
          Does the adapter which connects to the RES_QUEUE_2 queue have any logging information?

          Have a look at the oailog.txt file for this adapter.

          Messages do not get dropped for no reason. Ensure that the logging level is at 2, so that you can see the whole process.

          You say that the adapter picked up the return message from RES_QUEUE_2. There should be in the log file a record of this, and what it tried to do after it received it.

          I am unclear whether the problem is from your RES_QUEUE_2 adapter to the Hub queue, or from the Hub queue to the RES_QUEUE_1 adapter?

          Yan
          • 2. Re: Problem of using Procedure in iStudio
            456169
            Ian, thanks for your kind response.

            I'm using the AQ Adapter for both end (QUEUE 1 and QUEUE 2) and I did set the logging level to 2 and this is what it showed:

            Tue Nov 01 09:50:36 PST 2005: AQ Adapter: read a message from queue

            <detail message displayed here>

            Tue Nov 01 09:50:36 PST 2005: AQ Adapter: sent an OAI message for the message read from
            the queue.
            Broker-RPB.executeBrokerRequest:OAI/V1,OAI/V1,true,2

            <detail message displayed here>


            See, it's the last message printed by AQ Adapter log which I interpreted as the HUB consumed the message from RES_QUEUE_2 queue indeed but it did nothing after that which I expected it should deliver the message to RES_QUEUE_1 queue.

            However, what baffle me was during the Procedure IN, it worked perfectly as the log showed:

            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: read a message from queue

            <detail message displayed here>

            Tue Nov 01 09:50:34 PST 2005: OutMessageReceiver: got a message for processing.
            Broker-RPB.executeBrokerRequest:OAI/V1,OAI/V1,true,1

            <detail message displayed here>
            <... some more messages ...>

            Tue Nov 01 09:50:34 PST 2005: AO Persistence: : Got persistence id 1,130,867,434,517.
            Tue Nov 01 09:50:34 PST 2005: AO Persistence: : Done enqueuing message (1,130,867,434,5
            17).
            Tue Nov 01 09:50:34 PST 2005: OutMessageTransformer: got a message for processing.
            Broker-RPB.executeBrokerRequest:OAI/V1,OAI/V1,true,1

            <detail message displayed here>
            <... some more messages ...>

            Tue Nov 01 09:50:34 PST 2005: CBRHelper: There are no CBR expressions to be evaluated.
            Tue Nov 01 09:50:34 PST 2005: Messenger: topic connection started.
            Tue Nov 01 09:50:34 PST 2005: Messenger: publish topic session created.
            Tue Nov 01 09:50:34 PST 2005: Messenger: created publisher: oai_hub_queue
            Tue Nov 01 09:50:34 PST 2005: The message was sent to topic(s) {oai_hub_queue=[MAX_AQ]}
            . Processing Time = 123 ms.

            <detail message displayed here>
            <... some more messages ...>

            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: sent an OAI message for the message read from
            the queue.
            Broker-RPB.executeBrokerRequest:OAI/V1,OAI/V1,true,1

            <detail message displayed here>
            <... some more messages ...>

            Tue Nov 01 09:50:34 PST 2005: Received a message from hub queue oai_hub_queue.

            <detail message displayed here>
            <... some more messages ...>

            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: received the message from the Agent and will
            now write it to AQ.
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: created a writer for queue REQ_QUEUE_2.
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload NAME =
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload PROTOCOL = 0
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload USERID = AQ
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload NAME = JMS_OracleDel
            iveryMode
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload TYPE = 100
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload STR_VALUE = 2
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload JAVA_TYPE = 27
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload NAME = JMS_OracleTim
            estamp
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload TYPE = 200
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload NUM_VALUE = 1,130,86
            7,437,004
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload JAVA_TYPE = 24
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload TEXT_LEN = 99
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: successfully converted the field TEXT_VC to X
            ML
            <?xml version = '1.0' encoding = 'UTF-8' standalone = 'yes'?>
            <rpb>
            <message>Edward|Doug|Don|Shea|Bret</message>
            </rpb>

            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: adding to the AQ payload TEXT_LOB =
            Tue Nov 01 09:50:34 PST 2005: AQ Adapter: wrote the message to AQ ({REQ_QUEUE_2=[]
            }).
            Tue Nov 01 09:50:34 PST 2005: Agent: Message Processing Time = 177 ms.


            The above log messages are printed for the Procedure IN which I expect the same for Procedure OUT but not.

            I have checked both the AQ queue and HUB queue, the message not in there. In addition, there's no single error message thrown either by the adapter or the HUB (Integration Server) which left me totally clueless.

            That's why I'm hoping that you or anyone else in this forum can help me out with this problem. I also wonder if maybe the Procedure won't work between same adapter (I'm using the AQ adapter for both REQ - RES QUEUE 1 and REQ - RES QUEUE 2).

            Thanks again for the help.

            Edward