Structure of Integration Broker

PeopleSoft Integration Broker provides a mechanism for communicating with the outside world using XML files. It can be PeopleSoft to PeopleSoft or P2Other system by Synchronous/Asynchronous.

Parts:-

Message: A Message is a container for the data that goes into the XML. It contains basic structural information, such as records and fields. The Message must be in an Active status to send the XML file

Message Channel: The Message Channel is a mechanism for structuring records into logical groupings. Each Message can belong to only one Message Channel. The Message Channel must be in an Active (Run) status for the Message to be delivered.

Message Node: The Message Node is to specify which Gateway receives the messages.Each Message Node can route messages to only one Gateway Connector.

Integration Gateway: The Integration Gateway is a program that runs on the PeopleSoft Web Server. It is the physical hub between PeopleSoft and the third-party system.

Target Connector/Handler: Connectors are Java programs that run under the control of the Integration Gateway and control the final output destination of the XML file. PeopleSoft release 8.4 comes with several connectors including HTTP, FTP, SMTP, JMS, POP3, and a Simple File connector that places the file in a directory on the Web Server. This section discusses the Simple File connector.

PeopleCode: PeopleCode is the programming tool provided with PeopleTools that enables you to create complex application functionality. A message can only be initiated using specific PeopleCode instructions. This code is typically triggered by an application event, such as creating a new database entry through an online panel or through a batch job.


  • Perform asynchronous and synchronous messaging among internal systems and third-party systems.
  • Expose PeopleSoft business logic as web services to PeopleSoft and third-party systems.
  • Consume and invoke web services from third-party and PeopleSoft systems.

CI Based webservices creates an inbound any-to-local routing for the service operation and Handlers for each methods you choose to include in the service.

Component Interface Method

Service Operation Name

Message Name

Component Interface Handler

Request Message Shape

Response Message Shape

Create

<service_name>_C

Mxxxxxx

ONREQUESTHDLR

CI Buffer

Key

Find

<service_name>_F

Mxxxxxx

ONREQUESTHDLR

Get Keys

CI Buffer

Get

<service_name>_G

Mxxxxxx

ONREQUESTHDLR

Find Keys

Key Collection

Update

<service_name>_UP

Mxxxxxx

ONREQUESTHDLR

CI Buffer

Notification

Updatedata

<service_name>_UD

Mxxxxxx

ONREQUESTHDLR

CI Buffer

Notification

User-defined

<service_name>_<method_name>

Mxxxxxx

ONREQUESTHDLR

CI Buffer

Method Return Type

Integration Broker Monitoring:-

The PeopleTools Integration Broker has some built in tables and pages that allow you to inspect the content of messages and respond to errors. The PeopleSoft components to view this data are broken down by:

Asynchronous
Overview Page: PeopleTools > Integration Broker > Service Operations Monitor > Monitoring > Asynchronous Services
Detail Page: PeopleTools > Integration Broker > Service Operations Monitor > Monitoring > Asynchronous Details

Synchronous
Overview Page: PeopleTools > Integration Broker > Service Operations Monitor > Monitoring > Synchronous Services
Detail Page: PeopleTools > Integration Broker > Service Operations Monitor > Monitoring > Synchronous Details

Peoplesoft Integration Broker - Debugging Subscription PeopleCode

Generally, Handler tester being used to debug IB subscription code. In development environments write a simple AE in which will call the IB message transaction ID directly and do debug for each line (just like any other AE debug). In this way, you can get to know the code (if not developed by you) thoroughly. 
1. Create an AE program
2. Add a step and select peoplecode action
3. Write the following code in Peoplecode action:- 
          import IB_EXAMPLE:IBSubscriptionTest (example);
         Local Message &ibMsg;

         Local IB_EXAMPLE:IBSubscriptionTest &ibSubTest =      
                   create IB_EXAMPLE:IBSubscriptionTest();

         Local string &TransactionId = "Transaction ID from Operation Instance";

         &ibMsg = %IntBroker.GetMessage(&TransactionId, %IntBroker_BRK);

         &ibSubTest.OnNotify(&ibMsg);

    4. Run the AE in debugger mode.

Troubleshooting

  • All operations are in “NEW” Status"
  • I am not seeing anything in the Subscription contracts for a message that as posted.
    • Make sure your handlers are active and make sure you have inbound or local to local routings.
  • I am not seeing the message get into the publication contracts
    • Make sure your publication contracts are active
  • I am not seeing any messages in the Synchronous monitor
    • The service operation does not have any logging turn on. Check the routing to ensure there is at least header logging

Debugging:-

Enable DEBUG on the Integration Broker, as follows:
Go into integration Gateway.properties and set ig.log.level=5
Boot the Peopleoft application-
Go to the deployment page, undeploy one of the indexes, i.e. one real index, not the round trip test, one of the real indexes, 
e.g. PTPORTALREGISTRY that hasthe crawler issue.
Run Report/Synch, did it give any errors?
Run Audit, did it give any errors?
Now try to deploy this index and crawl.
Enable extended DEBUG on the SES Server guided by the below solution:
How to Turn on Debug Level Logging for Secure Enterprise Search (Doc ID 737515.1)
After replicating the issue, please collect the below logs so I can take a closer look:

PEOPLESOFT INTEGRATION BROKER
===============================
1. errorLog.html (in <PS_CFG>/webserv/<DOMAIN_NAME>/applications/peoplesoft/PSIGW.war)
2. msgLog.html (in <PS_CFG>/webserv/<DOMAIN_NAME>/applications/peoplesoft/PSIGW.war)
(need to go into integrationGateway.properties and set ig.log.level=5 for this to work)
3. PIA_stdout.log (or NTService log on Windows) (in <PS_CFG>/webserv/<DOMAIN_NAME>/servers/PIA/logs)
4. APPSRV_MM_DD.log (in <PS_CFG>/appserv/<DOMAIN_NAME>/LOGS

DATABASE LOGS
==============
1. listener.log (in <SES_HOME>/log/diag/tnslsnr/<MACHINE-NAME>/listener/trace)
2. database alert log

SES 11.2.2.2 LOGS
======================
MID-TIER LOGS (WebLogic)
------------------------------------------------------
1. search_server1_yyyy_MM_dd_hh_mm.log and search_server
1-diagnostic.log(in <SES_MIDDLETIER_HOME>/ user_projects/domains/search_domain/servers/search_server1/logs)
2. access.log (in <SES_MIDDLETIER_HOME>/ user_projects/domains/search_domain/servers/search_server1/logs)
CRAWLER/INDEX BUILD LOGS
-------------------------------------------------------------
1. search.crawler.i*.MMDDHHMM.log (in <SES MIDDLETIER_HOME>/logs/crawler/crawler)

No comments:

Post a Comment

PeopleCode to retrieve Google map between two addresses

  PeopleCode Example: /* Define constants for the API request */ Local string &origin = "123 Main St, Anytown, USA";   /* ...