3 Replies Latest reply on Aug 2, 2006 1:42 PM by 436342

    Interconnect - Newbie question about how interconnect works

      here is the scenario:

      I have a few adapters setup and i am just trying to follow the stages that a message goes through from one end application to another.

      this is what i can understand already:

      -An adapter bridge gets the message from an application(FTP,JDBC.etc..)
      -the adapter passes the message on to its agent as a messageObject.
      -the agent performs the transformation from application view to common view
      -the transformation is done by accessing the hub repository to find the transformation rules
      -how does the agent access the repository? direct access to the tables? or via another java process that is running that manages the repository tables?
      - the message which is now a common view message in the agent (in java memory) then needs CBR applied to it.
      -CBR is done by again accessing the repositiory to find the CBR rules.
      -are the CBR rules applied within the agent? or is the message passed on to another java process that all adapters pass there messages onto, and then the CBR is applied?
      -after CBR is applied then the message gets published to the AQ called OAI_HUB_QUEUE for then relavant consumer(s) who wish to subscribe to the message.
      -then how does the message get subscribed to the relavant adapter? is it the agent that does the subscribing or is there a seperate java process inbetween the main AQ and the adapter agent?

      I guess my overall question is to find out if there
      -is a java middle man between adapter agent(s) and the repository tables. if so then is it the same instance used by all adapters?
      -is a java middle man between adapter agent(s) and the main AQ. if so then is it the same instance used by all adapters?

      I have found it difficult to find this out from interconnect documentation because it talks about the hub in an abstract sense.

      up untill now i was looking at the adapter logs and it says that the message will now be passed onto the hub where CBR is applied. but i was unable to tell if the hub was a separate process(used by all adapters) or within the agent as well?

      i did read somewhere that there is a java hub process that manages the repository and communicates with the adapter agents via RMI.

      your help on clarifying this will be very much appriciated.
        • 1. Re: Interconnect - Newbie question about how interconnect works
          I'm no expert on protocols, but I think it all depends on your architecture - especially where you choose to install the adapters.
          There are different OAI topologies, but typically most clients have all the interconnect products installed on one server. The reason for this is that communication between the adapters and the
          -- Oracle AQ (to enqueue / dequeue messages) is done via JMS,
          -- Repository Java Service (to get the metadata, CBR rules) is done via CORBA over IIOP and
          -- Repository Database (used to insert/update runtime data like tracking fields, error messages ) is done via JDBC thick client using SQLNET
          -- third-party uses "native" protocols like FTP or SQLNET over TCP/IP. This means that most firewalls can more easily be configured for these protocols and port numbers.
          • 2. Re: Interconnect - Newbie question about how interconnect works
            The Adapter process loads all the metadata (ie the transformation rules, CBR etc) during the startup provided, it is mentioned in the adaper.ini and applies the rules at the runtime. I

            Normally, the adapter process doesn't lookup the repository for every message. However, it does a lookup at the repository tables only if there is a DVM or an XREF involved in the tranformation.
            • 3. Re: Interconnect - Newbie question about how interconnect works
              My understanding is that the adapter spawns two threads a Reader (for Publishing messages) and a writer (for subscriibing messages). There is no Java middleman it is all controlled within the same java process.

              Ian is right about the various protocols but you have various options in the adapter.ini files that will vary the behaviour of repository calls for CBR rules, DVM look ups etc... You can cache these locally if you know they are going to be heavily used.

              The adapters all run as independant processes (although the corba addresses are stored in the Hub), when an adapter picks up a message to send to the Hub, the adapter determines what adapters want it and the adapter (agent) will write to the AQ with the relevant number of subscribers. So if App1 and App2 both want the same message then a single message is written to the Q, with consumers for App1 and App2. The App1 and App2 adapters are polling the Q to see if there are any messages for them. If there are then they will dequeue them.