2 Replies Latest reply on Apr 8, 2004 7:45 AM by 194155

    Lost messages


      Could anyone tell me what happens with AQ messages that do not seem to leave an instance, reach a hub or reach an agent ?

      From my p.o.v. it seems that there might be a lot of AQ-like 'messages in a bottle' drifting in my instance's cyberspace... (that or really fouling up the SGA)

      The problem we are encountering seems to be that we can activate the OAI agent to create and publish a message.. and then all is lost... so we dont get any error messages from the hub or in the error logs... the messages just seem to disapear... ideas anyone ?
        • 1. Re: Lost messages
          The way I look at the whole end-to-end process is as follows. (I assume that you are using the DB Adapter as you mention OAI.Agent):-

          On the Source Database Side...

          1. Call made to OAI.Agent.CreateMessageObject
          - creates an entry in OAI.MessageObjectTable
          - creates the message payload
          - sends payload to OAI.AOTable
          2. Call made to OAI.Agent.Publish
          - updates table OAI.MessageObjectTable
          3. Publishing DB Adapter looks to subscribe to messages on the OAI.AOTable. It actually looks at OAI.MessageObjectTable for EventName, EventGroup and version. It finds the corresponding message on OAI.AOTable and takes the message. The adapter deletes the corresponding entry on OAI.MessageObjectTable. OAI.AOTable has an "on delete cascade" table alteration, so when the adapter deletes the OAI.MessageObjectTable entry, the corresponding entry in OAI.AOTable is deleted too.

          On the Adapter / Hub Side ...

          4. The next thing the Adapter does is write the payload to the persistence file (aopst_mo.oai) and a key to track it (aopst_del.oai).
          5. Once the transformation has occurred, the transformed message is enqueued to the hub database queue, and the un-transformed message is deleted from the persistence file.

          On the subscribing Adapter side ...

          6. Similar thing. The Adapter finds the message on the hub queue, writes entry to persistence file, transforms the message and attempts to send it to subscribing application / file system.

          AFAIK, the messages on the Database OAI.AOTable / OAI.MessageObjectTable do disappear forever once they have been dequeued successfully by the subscribing adapter.

          Have a look at your adapter log files, and check the persistence files.

          The best way of trying this is to shut down your publishing adapter, and create an outbound message. Look at the OAI.MessageObjectTable and OAI.AOTable tables. If your message is there, then start your adapter and see if it dequeues, and check your log files. If not, add some debugging code to your wrapper script which calls the OAI.Agent package.

          It's worth checking to ensure spelling of your Business Object name and your Event/Procedure name in the wrapper script and iStudio entry. The Adapter will only dequeue messages where EVENTNAME / EVENTGROUP and VERSION match.

          I hope this helps

          • 2. Re: Lost messages
            thanks for the explanation, it really helps......