This chapter discusses how to:
Work with the PeopleSoft connectors.
Work with the HTTP connectors.
Work with the PeopleSoft services listening connector.
Work with the PeopleSoft 8.1 connectors.
Work with the Java Messaging Service (JMS) connectors.
Work with the simple file target connector.
Work with the File Transfer Protocol (FTP) target connector.
Work with the AS2 connectors.
Work with the Simple Mail Transfer Protocol (SMTP) target connector.
This section discusses listening connectors, target connectors and target connector properties.
Listening connectors receive message requests from integration participants, send them to the gateway manager, and deliver responses back to the integration participants. The following diagram shows the flow of an inbound message from an external system into the integration engine through a listening connector:
Message flow through a listening connector
PeopleSoft-Delivered Listening Connectors
PeopleSoft delivers several listening connectors with PeopleSoft Integration Broker that enable integration participants to communicate with the PeopleSoft system using a number of communication formats.
You send messages to a listening connector at a URL address derived from its class location on the gateway web server.
Note. For all connectors in the following table except the service listening connector, the gateway provides a matching target connector. Although this chapter discusses each pair of listening and target connectors in a separate section, the use of a particular listening connector does not obligate you to use the corresponding target connector.
Connector |
Description |
In combination with the PeopleSoft target connector, this connector establishes the primary connection between a PeopleSoft application's integration engine and its local gateway. It receives requests from integration participants in the PeopleSoft internal messaging format. Third-party applications and PeopleSoft releases that don't include PeopleSoft Integration Broker should not send messages to this connector. |
|
This connector provides a web-standard method of communicating with the gateway. It accepts HTTP requests using the GET and POST methods. It also accepts secure HTTPS requests if SSL encryption is configured on the gateway's web server. |
|
This connector enables PeopleSoft 8.1x applications to communicate with the gateway using native Application Messaging technology. Third-party applications can send properly formatted 8.1x application messages to this connector. It also accepts secure HTTPS requests if SSL encryption is configured on the gateway's web server. |
|
This connector enables JMS provider systems to communicate with the gateway using standard JMS protocols. |
|
AS2 listening connector |
The AS2 listening connector enables you to receive request messages in AS2 format. |
PeopleSoft service listening connector |
PeopleSoft Integration Broker uses the PeopleSoftServiceListeningConnector as an endpoint for all node transactions that you expose as WSDL. All PeopleSoft node transactions that you publish as WSDL have the following endpoint: http://<machine>/PSIGW/PeopleSoftServiceListeningConnector. |
All of the delivered listening connectors that service HTTP requests run as servlets and are configured to run in BEA WebLogic, IBM WebSphere and Oracle Application Server web server environments. These connectors are the PeopleSoft listening connector, the HTTP listening connector, and the PeopleSoft 8.1 listening connector.
The listening connectors delivered with PeopleSoft Integration Broker do not support null characters (ASCII value 00) as part of message field data. If a third-party application sends a message containing null characters, you must replace each instance of the null character with an acceptable substitute character, such as a space, before sending the message to the PeopleSoft system. Alternatively, you can modify the delivered listening connector to replace the null characters when it receives the message.
Target connectors generate message requests, send them to integration participants, wait for responses from participants, and deliver the responses back to the gateway manager, as shown in the following diagram:
Message flow through a target connector
The integration gateway invokes target connectors dynamically through the gateway manager. Target connectors adhere to a standard structure by implementing the target connector interface provided by the integration gateway. By implementing this interface, target connectors can take advantage of all gateway manager services.
Each target connector has an internal connector ID that you use when selecting the connector; for example, the connector ID for the simple file target connector is FILEOUTPUT.
PeopleSoft-Delivered Target Connectors
PeopleSoft delivers several target connectors with PeopleSoft Integration Broker that enable you to communicate with integration participants using a wide range of communication formats. The following table describes the delivered target connectors:
Connector |
Description |
In combination with the PeopleSoft listening connector, this connector establishes the primary connection between a PeopleSoft application's integration engine and its local gateway. It sends requests to integration participants over a BEA Jolt connection in the PeopleSoft internal messaging format. Use this connector to send messages only to PeopleSoft applications that use PeopleSoft Integration Broker. Note. BEA Jolt is a Java-based interface that extends BEA Tuxedo capabilities to the internet. The integration gateway uses it as the standard interface for communicating with integration engines through the PeopleSoft target connector. |
|
This connector provides a web-standard method for the gateway to communicate with PeopleSoft and third-party applications. It sends HTTP requests using the GET and POST methods. It also sends secure HTTPS requests if SSL encryption is configured on the gateway. |
|
This connector enables the gateway to communicate with PeopleSoft 8.1x applications that use Application Messaging technology. It converts outbound messages to the Application Messaging native format. It also sends secure HTTPS requests if SSL encryption is configured on the gateway. |
|
This connector enables the gateway to communicate with JMS provider systems using standard JMS protocols. |
|
This connector enables the gateway to transfer messages to an FTP server. It converts outbound messages to file data it can send using the FTP PUT command. You can also send messages over a secure FTP(S) protocol. In addition you can receive messages from FTP servers using the GET command. |
|
AS2 target connector |
The AS2 target connector enables you to send messages in AS2 format. |
With this connector, the gateway can send messages to an SMTP server using the PUT command. |
|
With this connector, the gateway saves outbound messages as XML files. |
|
This connector provides functionality specific to the PeopleSoft Multichannel Framework. |
Most of the delivered target connectors have required and optional configuration properties that you set to control the connectors' behavior. Depending on the connector, you configure some of these properties in the integrationGateway.properties file or by using the Gateways component. You can specify values for connector properties in the following ways:
Gateway-level target connector properties always have the same value for a given connector, regardless of which nodes or transactions use the connector.
You specify the values of these properties in the integrationGateway.properties file.
Node-level target connector properties can have different values for each default local node that uses a given gateway.
Each node-level connector property is identified by a property ID and a property name. You specify default values for these properties in the Gateways component of each participating node.
When you create a node definition in the local database, you specify which gateway and target connector should be used to send messages to that node. In the node definition, you can supply values for the connector's node-level properties that override the defaults and apply only when sending messages to that node.
See Adding and Configuring Nodes.
When you define a routing definition, you can supply values for the connector's node-level properties to override the node definition's values and apply only when sending messages with that transaction.
See Overriding Gateway and Connector Properties.
You can set and override target connector properties at runtime using PeopleCode.
See Setting and Overriding Target Connector Properties at Runtime.
You must encrypt all required and optional target connector passwords.
See Encrypting Passwords.
The following connectors communicate over HTTP:
PeopleSoft target connector.
HTTP target connector.
PeopleSoft 8.1 target connector.
AS2 target connector.
For the HTTP target connector you can specify only one primary URL (PRIMARYURL) per node. The primary URL is the URL of the external system that handles the request.
However, you may specify more than one backup URL (BACKUPURL). Upon the failure of a transaction to the primary URL, the message is sent to any backup URLs one at a time. When a transaction that is sent to a URL succeeds, the other URLs are not used. If all URLs fail, the appropriate action and message is relayed to the calling module. The message and the node/URL failure is noted in the database or in the PeopleSoft Integration Broker Monitor.
Note. If the property ID is HEADER, then the target connector retrieves the information from a getHeader method call on the ConnectorInfo object, which resides on the IBRequest object. All other properties can be retrieved from a getFieldValue method call on the ConnectorInfo object.
Properties for Message Compression and Encoding
When the local integration gateway sends messages to a remote gateway, it ensures that they are compressed and base64 encoded. However, by default, when it sends messages directly to any node, it sends them uncompressed and unencoded. You can change this setting for transactions that use the following connectors:
HTTP target connector.
JMS target connector.
FTP target connector.
AS2 target connector.
SMTP target connector.
Simple file target connector.
Use the node-level SendUncompressed property for the appropriate connector. You can change the current value of this property specified for a given node by using the Connectors page of the node definition, or you can override the value for a single transaction by using the Connectors page of the node transaction detail. If you set the property's value to No, it sends messages compressed and base64 encoded.
See Adding and Configuring Nodes.
Note. If nonrepudiation is in effect for a message, the SendUncompressed property is not used, and the message is always sent compressed and base64 encoded.
This section provides an overview of the PeopleSoft connectors and discusses how to:
Use the PeopleSoft listening connector.
Use the PeopleSoft target connector.
The PeopleSoft listening and target connectors establish the primary connection between a PeopleSoft application's integration engine and its designated local gateway. They also support secure HTTPS communications if SSL encryption is configured on the gateway machine.
The PeopleSoft listening connector receives requests from integration participants in the PeopleSoft internal messaging format. Like the HTTP listening connector, the PeopleSoft listening connector is implemented as a Java HTTPServlet object. However, it receives requests in PeopleSoft Multipurpose Internet Mail Extensions (MIME) format. A PeopleSoft integration engine sends messages formatted in MIME over HTTP. The PeopleSoft listening connector receives these messages as POSTs (GET requests cannot be made in this way) and immediately converts the MIME input into a Java string object.
The PeopleSoft listening connector logs these requests and then invokes the gateway manager to unmarshall the string into an IBRequest object. The gateway manager invokes the target connector specified in the ConnectorClassName field in the IBRequest, which is derived from the node definition on the source integration engine. The gateway manager returns the responses to the connector, where they are logged and sent back to the original requesting systems, typically integration engines.
The URL for the PeopleSoft listening connector is http://gatewayserver/PSIGW/PeopleSoftListeningConnector, where gatewayserver is the machine name and port, host name, or IP address of the web server hosting the gateway.
Note. Third-party applications and PeopleSoft releases that don't include PeopleSoft Integration Broker should not send messages to this connector unless they can produce a properly MIME-encoded, PeopleSoft formatted message.
The PeopleSoft target connector initiates conversation with a PeopleSoft application's integration engine over a BEA Jolt connection in the PeopleSoft internal messaging format. The integration gateway sends messages to a specific integration engine based on the destination node specified in an incoming message. Use this connector to send messages only to PeopleSoft applications that use PeopleSoft Integration Broker.
The connector ID for the PeopleSoft target connector is PSFTTARGET.
Gateway-Level Connector Properties
There are no gateway-level connector properties specific to this connector; however, it uses both the node-specific and default BEA Jolt connect string properties in the integrationGateway.properties file to determine where to send the messages.
See Setting General Connection Properties.
Node-Level Connector Properties
There are no node-level connector properties for the PeopleSoft target connector.
This section provides an overview of the HTTP connectors and discusses how to:
Use the HTTP listening connector.
Use the HTTP target connector.
Comply with message formatting and transmission requirements.
Run the gateway behind a proxy server.
The HTTP listening and target connectors provide a web-standard method for an integration gateway to exchange messages with both PeopleSoft and third-party applications using the HTTP GET and POST methods. They also support secure HTTPS communications if SSL encryption is configured on the gateway machine.
The HTTP listening connector monitors specific ports for incoming HTTP messages. It's implemented as a Java HTTPServlet object. The URL for the HTTP listening connector is http://gatewayserver/PSIGW/HttpListeningConnector, where gatewayserver is the machine name and port, host name, or IP address of the web server hosting the gateway.
The HTTP listening connector accepts compressed and base 64-encoded data.
PeopleSoft HTTP Message Parameters
You must specify several required parameters in messages that you send to the HTTP listening connector. There are also several optional parameters.
These parameters, also known as credentials, are metadata specific to each message that the HTTP listening connector processes. These parameters supply authentication information and descriptive details about how the message is processed. For each message that you send to the connector, PeopleSoft Integration Broker uses the parameters that you supply to create an IBRequest that it uses to process and service the request internally. The following table describes the parameters:
The PeopleSoft HTTP message parameters can be passed with inbound messages to the HTTP listening connector using several methods, and they are transmitted with outbound messages by the HTTP target connector.
See Complying With Message Formatting and Transmission Requirements.
You can specify an external message ID as a parameter in the HTTP listening connector to uniquely identify a message in PeopleSoft Integration Broker, thus ensuring that no duplicate messages are delivered to the system. The ExternalMessageID parameter is optional, but if you do specify this parameter, it must be unique and contain no more than 70 characters.
The HTTP listening connector can receive an external message ID in:
Query strings.
HTTP headers.
SOAPAction headers.
PeopleSoft IBRequest XML
The following example shows passing an external message ID in a query string:
http://localhost/PSIGW/HttpListeningConnector?From=QE_UNDERDOG&To= QE_LOCAL&Operation=QE_SYNC_MSG.VERSION_1 ExternalMessageID=UniqueId0006
The following example shows passing an external message ID in an HTTP header:
ExternalMessageID: UniqueId0006
The following example shows passing an external message ID in a SOAPAction header:
http://peoplesoft.com/QE_SYNC_MSG/QE_UNDERDOG/password/QE_LOCAL/ UniqueId0006
The following example shows passing an external message ID in PeopleSoft IBRequest XML:
<?xml version="1.0"?> <IBRequest> <From> <RequestingNode>QE_UNDERDOG</RequestingNode> <OrigTimeStamp>2003-09-29T00:37:30.790-0800</OrigTimeStamp> <ExternalMessageID>UniqueId0006</ExternalMessageID> /From> <ExternalOperationName>QE_SYNC_MSG.VERSION_1</ExternalOperationName> <OperationType>sync</OperationType> <To> <DestinationNode>QE_LOCAL</DestinationNode> </To> <ContentSections> <ContentSection> <Headers> <version>VERSION_1</version> </Headers> <Data><![CDATA[<?xml version="1.0"?><QE_SYNC_MSG/>]]></Data> </ContentSection> </ContentSections> </IBRequest>
The HTTP target connector enables you to exchange messages with non-PeopleSoft systems using the HTTP protocol. The HTTP target connector uses SSL for all basic security services, including client-side authentication.
The HTTP target connector also supports the Simple Object Access Protocol (SOAP) XML format.
The connector ID for the HTTP target connector is HTTPTARGET.
IBInfo Data Contained in HTTP Headers
A message has two parts—the transaction data and the IBInfo header that is the routing envelope used by PeopleSoft Integration Broker. In the event that a receiving system wants to make use of the IBInfo data, IBInfo header information is included when publishing messages to non-PeopleSoft systems when using the HTTP target connector or the JMS target connector.
When using the HTTP target connector to send messages to non-PeopleSoft systems, the following IBInfo data is contained in the HTTP headers. The content of the message (message body) is not impacted.
ExternalOperationName
OperationType
OrigTimeStamp
NonRepudiation
To
From
Gateway-Level Connector Properties
The HTTP target connector provides the option of routing through proxy servers. To enable this capability, you must set the domain name of the proxy server and the port number of the proxy server in the integrationGateway.properties file:
See Running Integration Gateways Behind Proxy Servers.
Node-Level Connector Properties
The HTTP target connector features properties that correspond to standard HTTP 1.1 header fields, as well as several custom properties that are documented in the following table. The World Wide Web Consortium (W3C) web site provides complete documentation for the standard header fields.
See http://www.w3.org/Protocols/rfc2616/rfc2616.html
Property ID |
Property Name |
Description |
HTTPPROPERTY |
Specify the HTTP method used to send messages. The valid values are:
|
|
HTTPPROPERTY |
(Optional.) Automatically wrap outbound transactions in SOAP format. The valid values are:
|
|
PRIMARYURL |
URL |
Specify the URL to which messages are sent using this connector. |
BACKUPURL |
URL |
(Optional.) Specify the URL to which messages can be sent if the primary URL is inaccessible. |
HEADER |
Specify whether to send messages decompressed. Options are:
|
|
HEADER |
Specify the user ID and password for proxy authentication. |
|
HEADER |
(Optional.) Enable third-party systems (for example, Universal Description, Discovery, and Integration (UDDI) sites) to receive SOAP transactions over HTTP. The default value is ”“ (a null string). |
|
HEADER |
Specify the time in milliseconds for the connector to wait for the message to transmit. If the timeout period expires without a successful transmission, the transaction fails. The default value is 50000 (50 seconds). |
Using the Content-Type Property
One of the optional gateway-level properties you can set for the HTTP target connector is Content-Type.
When the HTTP target connector property Content-Type is application/x-www-form-urlencoded, the connector converts the content string to MIME format.
When encoding a string, the following rules apply:
The alphanumeric characters "a" through "z", "A" through "Z" and "0" through "9" remain the same.
The special characters ".", "-", "*", and "_" remain the same.
The space character " " is converted into a plus sign "+".
All other characters are unsafe and are first converted into one or more bytes. Then each byte is represented by the three-character string "%xy," where xy is the two-digit hexadecimal representation of the byte.
This section discusses:
The PeopleSoft XML message wrapper.
The PeopleSoft non-XML message element.
Passing HTTP parameters.
Specifying message destinations in HTTP headers.
Adding nonrepudiation signatures.
Submitting cookies in the HTTP header.
Responses to inbound request messages.
Submitting SOAP messages.
This section directly addresses the issue of third parties that format and transmit messages to the HTTP listening connector; third parties should also expect the HTTP target connector to format and transmit outbound messages using the same standards.
The PeopleSoft XML Message Wrapper
At a minimum, when you submit message content to the HTTP listening connector, you submit it—preceded by the following XML version declaration—inside a simple XML wrapper:
<?xml version="1.0"?> <![CDATA[your_message_content]]>
Upon receiving the message, the integration gateway strips off the outer elements, leaving the message content with its original XML version declaration to be handled by PeopleSoft Integration Broker:
<?xml version="1.0"?>your_message_content
The message content can comply with the PeopleSoft rowset-based message format, which you can manipulate using the PeopleCode Rowset class. It can also be nonrowset-based XML-DOM-compliant data, which you can manipulate with nonrowset PeopleCode. Both formats are compatible with Application Engine transform programs, in which you can manipulate the message content using both PeopleCode and Extensible Stylesheet Language Transformation (XSLT) code.
The following template shows how a message in PeopleSoft rowset-based message format fits into the XML wrapper (data omitted for readability):
<?xml version="1.0"?> <![CDATA[<?xml version="1.0"?> <psft_message_name> <FieldTypes> ... </FieldTypes> <MsgData> ... </MsgData> </psft_message_name>]]>
Note. Psft_message_name is the name of the message definition in the PeopleSoft database.
The PeopleSoft Non-XML Message Element
If you’re submitting a non-XML message, you must insert the message content into a special element containing its own CDATA tag, as follows:
<?xml version="1.0"?> <![CDATA[<?xml version="1.0"?> <any_tag psnonxml="yes"> <![CDATA[your_nonXML_message_content]]> </any_tag>]]>
Note. Any_tag can be any tag that you want to use. This is an XML-DOM-compliant method of transmitting non-XML data.
The following restrictions apply to the content of non-XML messages, such as those in comma-separated value (CSV) or PDF format:
If the message content is non-XML text, it must be encoded as characters that are compliant with Unicode Transformation Format 8 (UTF-8).
If the message content is non-text (binary), it must be encoded in base64 format.
Upon receiving the message, the integration gateway strips off the outer elements, leaving the non-XML message content inside a valid XML-DOM-compliant wrapper with its original XML version declaration.
You can pass parameters to the HTTP listening connector in:
The PeopleSoft message wrapper, through an HTTP POST.
The HTTP header, through an HTTP GET or POST.
The URL query string, through an HTTP GET or POST.
The only HTTP parameters that you must provide for basic messaging are MessageName and RequestingNode. If you pass them in the PeopleSoft message wrapper, you must embed them in an XML structure along with the CDATA element containing the message content. Following is the minimum wrapper structure required to pass the parameters this way:
<?xml version="1.0"?> <IBRequest> <ExternalOperationName>psft_operation_name</ExternalOperation Name> <From> <RequestingNode>psft_node_name</RequestingNode> </From> <ContentSections> <ContentSection> <Data> <![CDATA[<?xml version="1.0"?>your_message_content]]> </Data> </ContentSection> </ContentSections> </IBRequest>
Note. Psft_message_name and psft_node_name are the names of the message definition and the sending system's node definition in the PeopleSoft database.
If you want to pass all of the HTTP message parameters in the PeopleSoft message wrapper, you embed them in the XML wrapper structure as follows (required parameters are shown emphasized, and element values are omitted for readability):
<?xml version="1.0"?> <IBRequest> <ExternalOperationName/> <OperationType/> <From> <RequestingNode/> <Password/> <OrigUser/> <OrigNode/> <OrigProcess/> <OrigTimeStamp/> </From> <To> <FinalDestination/> <DestinationNode/> <SubChannel/> </To> <ContentSections> <ContentSection> <NonRepudiation/> <MessageVersion/> <Data> <![CDATA[<?xml version="1.0"?>your_message_content]]> </Data> </ContentSection> </ContentSections> </IBRequest>
The following template shows the format for passing HTTP message parameters in the HTTP message header. The optional parameters can be omitted if not needed. The HTTP header format is as follows (required parameters are shown emphasized):
OperationName: OperationName OperationType: Sync|Async|Ping From: RequestingNode Password: Password OrigUser: OrigUser OrigNode: OrigNode OrigProcess: OrigProcess OrigTimeStamp: OrigTimeStamp FinalDestination: FinalDestination To: DestinationNode SubQueue: SubQueue NonRepudiation: Y|N
Warning! Whether you send message parameters in the message wrapper or in the HTTP header, those parameters—including the password—aren't secure if you don't encrypt the message. You can secure messages by implementing SSL encryption.
The following template shows the format for passing HTTP message parameters in a URL query string. Include all of the parameter variables, even if you don't supply values for some of them. With only the required parameters, the URL query string looks like the following (required parameters are emphasized):
http://gatewayserver/PSIGW/HttpListeningConnector?&Operation=Operation Name&OperationType=&From=RequestingNode&Password=&OrigUser=&OrigNode= &OrigProcess=&OrigTimeStamp=&FinalDestination=&To=&SubChannel= &NonRepudiation=&MessageVersion=
The full URL query string format is:
http://gatewayserver/PSIGW/HttpListeningConnector?&Operation=Operation Name&OperationType=[Sync|Async|Ping]&From=RequestingNode&Password= Password&OrigUser=OrigUser&OrigNode=OrigNode&OrigProcess=OrigProcess& OrigTimeStamp=OrigTimeStamp&FinalDestination=FinalDestination&To=DestinationNode&SubChannel
=SubChannel&NonRepudiation=[Y|N]&MessageVersion=MessageVersion
Warning! URL query strings are always transmitted in clear text, so your parameters are visible to the world. This means that using a query string to send message parameters—such as a password—is highly insecure. Consequently, it is not recommended.
Using an HTTP POST is the only way that you can send message content to PeopleSoft Integration Broker through the HTTP listening connector. However, you can use an HTTP GET when you don't need to post message content. In this case, you pass the HTTP connector properties in the URL query string or in the HTTP header, but you don't insert any message content or XML wrapper. For example, you might have requests for information (queries), such as a request for a customer list. In this case, you need to specify only the message name (for example, CUSTOMER_LIST_REQUEST) and the name of the requesting node in the URL query string or the HTTP header.
Specifying Message Destinations in HTTP Headers
When message credentials are supplied in HTTP headers, the "To:" (destination node) specification is ignored. PeopleSoft Integration Broker uses the Default Application Server node entry in the integrationGateway.properties file as the destination node, not the "To:" entry from the headers. If no default application server entry is specified in the integrationGateway.properties file, the follow error is generated:
<?xml version="1.0"?> <IBResponse type="error"> <DefaultTitle>Integration Broker Response</DefaultTitle> <StatusCode>20</StatusCode> <MessageID>10201</MessageID> <DefaultMessage>null</DefaultMessage> </IBResponse>
You can specify destination node information in the SOAPAction field or HTTP query string.
Note. If using SOAP, PeopleSoft Integration Broker takes all IBInfo from the SOAPAction field, not from the HTTP header or HTTP query string.
Adding Nonrepudiation Signatures
If you’re working with a nonrepudiated message, its signature must be located at the same level as the message data.-The message doesn’t need to be formatted with the PeopleSoft rowset hierarchy, as long as it's enclosed in valid XML and has the signature section as specified by the W3C. The following template describes a nonrepudiation signature alongside the PeopleSoft rowset-based format message it represents, within the ContentSection element of the PeopleSoft XML message wrapper (the tags you must add for nonrepudiation are in bold):
<ContentSections> <ContentSection> <NonRepudiation>Y</NonRepudiation> <Data> <?xml version="1.0"?> <any_tag> <data> <![CDATA[<?xml version="1.0"?>your_message_content]]> </data> <Signature> <SignedInfo> <CanonicalizationMethod/> <SignatureMethod/> <Reference> <DigestMethod> <DigestValue> ... </DigestValue> </DigestMethod> </Reference> </SignedInfo> <SignatureValue> ... </SignatureValue> </Signature> </any_tag> </Data> </ContentSection> </ContentSections>
Note. Any_tag can be any tag that you want to use, such as My_NR_Message.
You can find more information about the proposed standard for XML signature syntax and processing at the W3C web site.
See http://www.w3.org/TR/xmldsig-core/
Important! In PeopleSoft Integration Broker, all signatures use line feeds for newlines, so the nonrepudiation signature cannot include any carriage return and line feed (CR/LF) pairs. A non-PeopleSoft application must strip out the carriage returns before inserting the signature and sending the message.
Note. To handle nonrepudiated messages, you must install node-based digital certificates on the sending and receiving systems and configure the message and channel definitions to use the nonrepudiation feature.
See Implementing Nonrepudiation.
Submitting Cookies HTTP Headers
The HTTP listening connector supports cookies. Cookies that are passed as part of a message request to the HTTP listening connector are processed, read, and manipulated by the receiving PeopleCode in the application. You enter cookies in the HTTP message header. For example:
Cookie: favoritecolor=green; path=/; expires Mon, 10-Dec-2007 13:46:00 GMT
In this example, the header entry would result in a cookie named favoritecolor. The value of favoritecolor is green. This cookie has a path of /, meaning that it is valid for the entire site, and it has an expiration date of December 10, 2007 at 1:46 p.m. Greenwich Mean Time (GMT).
See Handling Cookies.
PeopleSoft Integration Broker responds to inbound requests in one of three ways:
For a successfully received synchronous transmission, the integration gateway passes the request to the integration engine.
The integration engine generates and passes back through the listening connector a response in a format determined by the applicable node, service operation definition and routing definition for the request.
For a successfully received asynchronous transmission, the integration gateway immediately returns a simple XML acknowledgment message.
The following example shows a successful asynchronous acknowledgment:
<?xml version="1.0"?> <IBResponse type="success"> <DefaultTitle>Integration Broker Response</DefaultTitle> <StatusCode>0</StatusCode> <TransactionID>UNDERDOG.QE_SALES_ORDER_ASYNC_CHNL.20</TransactionID> </IBResponse>
For an unsuccessful transmission, the integration gateway immediately returns a simple XML error message in a standard XML error format for all requests (except SOAP requests), if error handling is invoked in the integration gateway.
The following is an example of this standard error response:
<?xml version="1.0"?> <IBResponse type="error"> <DefaultTitle>Integration Broker Response</DefaultTitle> <StatusCode/> <MessageID/> <DefaultMessage/> <MessageParameters> <Parameter/> </MessageParameters> </IBResponse>
SOAP messages support a subset of the HTTP message parameters— two required parameters and two optional parameters. You pass them to the HTTP listening connector in a SOAP-specific HTTP header. Concatenate them in a string, with each parameter preceded by a pound sign (#). They must appear in the following order:
#http://peoplesoft.com/OperationName/RequestingNode/Password/DestinationNode
The following example shows where the parameter string belongs in a SOAP HTTP header:
POST /get_BindingDetail HTTP/1.1 Host: www.someOperator.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: http://peoplesoft.com/PURCHASE_ORDER/MY_NODE/ PSFT_PASS/PSFT_NODE
Note. The SOAPAction must always be in the HTTP header, not contained within the IBRequest XML.
Because the last two parameters are optional, you can exclude them; however, you must still include the pound signs. This example excludes the password:
SOAPAction: http://peoplesoft.com/PURCHASE_ORDER/MY_NODE//PSFT_NODE
Note. The SOAPAction format for previous PeopleTools releases is still supported. This format had the parameters concatenated in a string separated by pound signs ("#"): SOAPAction: #PURCHASE_ORDER#MY_NODE#PSFT_PASS#PSFT_NODE
Warning! When you send message parameters in the SOAP header, those parameters—including the password—aren't secure if you don't encrypt the message. You can secure messages by implementing SSL encryption.
If an error occurs on the integration gateway during processing, a SOAP-specific XML error is generated instead of a standard XML error. Following is an example of an error in SOAP-specific XML format:
<?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Body> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Server</faultcode> <faultstring>Server Error</faultstring> <detail> <IBResponse type="error"> <DefaultTitle>Integration Broker Response</DefaultTitle> <StatusCode>10</StatusCode> <MessageID>10731</MessageID> <DefaultMessage></DefaultMessage> </IBResponse> </detail> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
This section describes HTTP status codes for non-SOAP and SOAP messages.
Status Codes for Non-SOAP Messages
The following list summarizes HTTP status codes for non-SOAP messages:
For an asynchronous message, HTTP status codes 200 to 299 indicate a message status of Success.
For a synchronous message, the HTTP status code 200 indicates a message status of Success.
HTTP status code 404 indicates that the server has not found anything matching the Request-URI. In this case, an ExternalSystemContactException is generated on the integration gateway and the message status goes to Retry.
HTTP status code 503 indicates that the server is currently unable to handle the request due to temporary server overload or maintenance. In this case, an ExternalSystemContactException is generated on the integration gateway and the message status goes to Retry.
All other HTTP status codes generate an ExternalApplicationException. The status of these messages goes to Error.
Status Codes for SOAP Messages
This section summarizes HTTP status codes for SOAP messages.
If you are following SOAP 1.1 standards, the HTTP status code 500 indicates an Error.
If you are following SOAP 1.2 standards, the following HTTP status codes apply:
HTTP status code 400 can mean any of the following:
InvalidMessageException
MessageMarshallingException
MessageUnmarshallingException
Malformed HTTP/XML
HTTP status code 405 indicates that the method is not POST.
HTTP status code 415 indicates the content type is not text/xml.
HTTP status code 500 can mean any of the following:
ExternalSystemContactException
ExternalApplicationException
GeneralFrameworkException
When a proxy server is set up for a network on which the integration gateway resides, all HTTP transactions are routed through that proxy server automatically. The HTTP transport layer uses proxy server settings that you specify in the integrationGateway.properties file. The message is routed to the proxy server and then on to the internet. Only the HTTP target connector can use a proxy server.
Inserted in the HTTP message header of each transaction is a Proxy-Authorization header field containing a user ID and password. The proxy server uses these values to authenticate the message and then passes it on to its target.
Setting Proxy Web Server Properties
To run the integration gateway behind a proxy server:
Set the gateway-level properties.
Uncomment and add values for the properties in the integrationGateway.properties file section labeled Proxy webserver section.
Property |
Description |
ig.proxyHost |
Enter the domain name of the proxy web server; for example:
|
ig.proxyPort |
Enter the port number of the proxy web server; for example:
|
The HTTP target connector reads these two properties and calls the setProxy function. In an outbound transaction, the request is redirected to the proxy server and the proxy server forwards the request to the destination URL.
Set the node-level property.
You set the user ID and password required by the proxy server in the HEADER, Proxy-Authorization connector property. The integration gateway encodes the values that you provide, adds the required formatting, and sends it. The format is:
userid:password
See Also
Using the integrationGateway.properties File
This section discusses how to:
Set parameters for the PeopleSoft services listening connector.
Pass parameters for the PeopleSoft services listening connector.
Pass parameters to get XML schema, WSDL, and WSIL.
The PeopleSoft services listening connector is used for inbound integrations with web services.
SOAP Messages
If the inbound request is a SOAP message:
The SOAPAction must take the following format:
SOAPActon:<External_alias_name>
The response message should also be in SOAP format. If it is not, it should be wrapped in SOAP format.
Any errors generated are in SOAP format or wrapped in the SOAP fault tag and returned to the sender.
The same required and optional parameters that you can set for the HTTP listening connector pertain to the PeopleSoft services listening connector. For a list of the required and optional parameters, see the Using the HTTP Listening Connector section presented previously in this chapter.
See Using the HTTP Listening Connector.
This section discusses how to pass parameters to the PeopleSoft services listening connector.
Passing Parameters to the PeopleSoft Services Listening Connector in URL Query Format
You can pass parameters to the PeopleSoft service listening connector using a URL query string using the following format:
http://<machinename>:<port>/PSIGW/PeopleSoftServiceListening Connector?Operation=OperationName
The following format is also supported:
http://<machinename>:<port>/PSIGW/PeopleSoftServiceListening Connector?Operation=<OperationName>>&To=<ReceiverNode>&From= <SenderNode>&OperationType=<Type>
Passing Parameters to the PeopleSoft Services Listening Connector in Path Format
You can pass parameters to the PeopleSoft service listening connector using a path format using the following format:
http://127.0.0.1/PSIGW/PeopleSoftServiceListeningConnector/ SERVICE_OPERATION.VERSION.xsd
You can use query format or path format to get XML schema, WSDL and WSIL.
Using Query Format to Get XML Schema, WSDL and WSIL
Use the following query format to get XML schema:
http://<machinename>:<port>/PSIGW/PeopleSoftServiceListeningConnector?Operation= GetSchema&xsd=SERVICE_OPERATION.VERSION
Use the following query format to get WSDL:
http://<machinename>:<port>/PSIGW/PeopleSoftServiceListeningConnector?Operation= GetWSDL&wsdl=SERVICE_OPERATION.VERSION
Use the following query format to get WSIL:
http://<machinename>:<port>/PSIGW/PeopleSoftServiceListeningConnector?Operation= GetWSIL
Using Path Format to Get XML Schema, WSDL and WSIL
Use the following path format to get XML schema:
http://<machinename>:<port>/PSIGW/PeopleSoftServiceListeningConnector/ <REMOTENODE>/<OperationName>.<version>.xsd
Use the following path format to get WSDL:
http://<machinename>:<port>/PSIGW/PeopleSoftServiceListeningConnector/ <REMOTENODE>/<OperationName>.<version>.wsdl
Use the following path format to get WSIL:
http://<machinename>:<port>/PSIGW/PeopleSoftServiceListeningConnector/ <REMOTENODE>/inspection.wsil
This section provides an overview of the PeopleSoft 8.1 connectors and discusses how to:
Use the PeopleSoft 8.1 listening connector.
Use the PeopleSoft 8.1 target connector.
The PeopleSoft 8.1 listening and target connectors enable communication between PeopleSoft 8.1x applications and an integration gateway using PeopleSoft Application Messaging technology. To the PeopleSoft 8.1x application, the gateway appears to be another PeopleSoft 8.1x application, so no change in the messaging development process is needed. The connectors also support secure HTTPS communications if SSL encryption is configured on the gateway machine.
See Also
Installing Web Server-Based Digital Certificates
In PeopleSoft 8.1x systems, PeopleSoft Application Messaging generates highly structured XML messages that are designed to be sent to PeopleSoft 8.1x Application Messaging gateways. The PeopleSoft 8.1 listening connector mimics the role of the Application Messaging gateway by transparently receiving and processing PeopleSoft 8.1x messages. This connector transforms inbound PeopleSoft 8.1x messages into PeopleSoft Integration Broker formatted XML messages that can be processed by the integration gateway and ultimately by the integration engine. This conversion is necessary because the two message formats are distinctly different.
The URL for the PeopleSoft 8.1 listening connector is http://gatewayserver/PSIGW/PS81ListeningConnector, where gatewayserver is the machine name and port, host name, or IP address of the web server hosting the gateway.
This connector automatically handles base64–encoded and compressed messages, as well as uncompressed messages.
This connector enables the gateway to communicate with PeopleSoft 8.1x applications that use PeopleSoft Application Messaging technology. It converts outbound messages to the Application Messaging native format. Messages from the PeopleSoft Integration Broker system reach the PeopleSoft 8.1x system through the Application Messaging gateway on the PeopleSoft 8.1x system.
The PeopleSoft 8.1 target connector uses the HTTP target connector to manage the HTTP communication with the PeopleSoft 8.1x Application Messaging gateway. The PeopleSoft 8.1 target connector focuses on messaging semantics, instead of communication details; it constructs an Application Messaging XML document and sends it using the HTTP target connector. The PeopleSoft 8.1 target connector detects the status of returned responses by the value in the ReturnCode field in the XML response.
The connector ID for the PeopleSoft 8.1 target connector is PSFT81TARGET.
Gateway-Level Connector Properties
The PeopleSoft 8.1 target connector has one gateway-level property, in the section of the integrationGateway.properties file labeled DELIVERED CONNECTOR CONFIGURATION Section. This property specifies where the connector can send messages if a target URL isn't specified in the connector's node-level properties. Specify the URL as follows:
ig.connector.amtargetconnector.url=peoplesoft_8.1x_application_messaging_gateway
You can override this value by specifying a different URL in the node-level connector properties, in the node definition for the PeopleSoft 8.1x target node, or in the transaction definition for the message.
Node-Level Connector Properties
The following table describes the node-level connector properties:
Property ID |
Property Name |
Description |
PSFT81TARGET |
URL |
Specify the PeopleSoft 8.1x Application Messaging gateway URL to which messages are sent using this connector. |
HEADER |
Specify the time in milliseconds for the connector to wait for the message to transmit. If the timeout period expires without a successful transmission, the transaction fails. The default value is 50000 (50 seconds). |
This section provides an overview of the JMS connectors and discusses how to:
Specify JNDIFactory class names.
Use the JMS listening connector.
Use the JMS target connector.
The JMS listening and target connectors enable communication between JMS provider systems and an integration gateway using standard JMS protocols. PeopleSoft currently supports Java Native Directory Interface (JNDI) only for File System Context [fscontext].
To use the JMS connectors, you must add specific Java archive (JAR) files to the Java CLASSPATH. The JAR files that you add to the CLASSPATH depend on the JMS provider with which you're communicating. The following JMS providers are supported:
JMS Provider |
Required Files |
BEA WebLogic |
Weblogic.jar Note. PeopleSoft Integration Broker currently doesn't support using the IBM WebSphere web server with a WebLogic JMS provider. |
Sun iPlanet |
jms.jar, ,jmq.jar, fscontext.jar, jndi.jar |
IBM MQSeries |
jms.jar, jndi.jar, fscontext.jar, com.ibm.mqjms.jar |
Oracle Application Server (OAS) |
NA |
Note. Not only can a gateway running on a BEA WebLogic web server communicate with a WebLogic JMS provider, but both services can run on a single installation of WebLogic. However, the gateway still treats the JMS provider as a separate system, and it must be configured the same way as in any other scenario.
You can also add generic JMS providers for use with PeopleSoft Integration Broker.
See Adding Generic JMS Providers.
You must set up the JNDIFactory class names for the JMS provider in the section of the integrationGateway.properties file labeled JMS configuration Section.
When you set the JMSProvider property, the provider name that you enter must match the provider in the JNDIFactory class name exactly. You must set this property for both the JMS listening connector and the JMS target connector. This property is case-sensitive.
Property |
Description |
ig.jms.JMSProvider.JNDIFactory.Weblogic |
Specify the JNDIFactory class name for a BEA WebLogic JMS provider. The default value is:
|
ig.jms.JMSProvider.JNDIFactory. iPlanet |
Specify the JNDIFactory class name for an iPlanet JMS provider. The default value is:
|
ig.jms.JMSProvider.JNDIFactory. MQSeries |
Specify the JNDIFactory class for an MQSeries JMS provider. The default value is:
|
ig.jms.JMSProvider.JNDIFactory.OAS |
Specify the JNDIFactory class name for an Oracle Application Server JMS provider. The default value is:
|
You can also specify a service provider that is not listed. For example, if you are using MSMQ, enter the following value for the property:
ig.jms.JMSProvider.JNDIFactory.MSMQ=com.sun.jndi.fscontext.RefFSContextFactory
The JMS listening connector has two components: a subscriber and a queue listener. The JMS subscriber subscribes to different topics and the JMS queue listens on queues for new messages.
Note. The JMS listening connector always expects JMS messages in text format.
The JMS listening connector retrieves topics and queues that you have defined in integrationGateway.properties file. For each topic it starts a topic subscriber, and for each queue it starts a queue listener. When a message arrives either for a queue or topic, the JMS listening connector sends the message to the integration engine.
A parameter called ExternalMessageID is used to ensure that messages are received only once. When the JMS listening connector receives a message, it sets an external message ID in IBInfo and sends this information to the PeopleSoft Integration Broker with the message content. If the external message ID exists in IBInfo, the application server checks for duplicate messages. If a duplicate is found, an error is generated. The external message ID is optional. If specified, it must be unique and not exceed 70 characters.
If an error occurs during message processing, the JMS listening connector publishes the message back to either an error topic or an error queue. All error messages feature a header called ErrorDescription which contains a description of the error.
Note. If the application server returns the status 20, the message is published to the error topic and the response is logged in the integration gateway message log.
To capture errors you must set error topic or error queue properties in the JMS Configuration Section of the integrationGateway.properties file. These properties are discussed later in this section. If both an error topic and an error queue are set up and configured, only the error queue will capture error messages.
You can configure multiple queues in the section of the integrationGateway.properties file labeled JMS Configuration Section. To configure multiple queues, use the convention, ig.queue1, ig.queue2, ig.queue3, and so on.
Property |
Description |
ig.jms.Queues |
Specify the number of queue listeners to instantiate. |
ig.jms.Queue1 |
Specify the queue name. |
ig.jms.Queue1.Provider |
Specify the queue provider name. |
Specify the JMSFactory name that is bound to JNDI for the queue. |
|
ig.jms.Queue1.MessageSelector |
(Optional.) Specify the message filter. |
ig.jms.Queue1.URL |
Specify the JMS provider’s URL to JNDI. |
ig.jms.Queue1.User |
(Optional.) Specify the JMS queue user name. |
(Optional.) Specify the JMS queue password. If you choose to specify a password, you must encrypt it. See Encrypting Passwords. |
|
ig.jms.Queue1.SecurityPrincipal |
This property is required if you are using OAS as the JMS provider. Set this property equal to the user ID for the OAS server. |
ig.jms.Queue1.SecurityCredentials |
This property is required if you are using OAS as the JMS provider. Set this property equal to the password to the OAS server. You must encrypt this value. See Encrypting Passwords. |
ig.jms.Queue1.MessageName |
(Optional.) Specify the name of the service operation or message. |
ig.jms.Queue1.MessageVersion |
(Optional.) Specify the message version. If you specify a message name, you may also specify the message version. |
(Optional.) Specify the name of the requesting node. |
|
ig.jms.Queue1.DestinationNode |
(Optional.) Specify the name of the destination node. |
ig.jms.Queue1.NodePassword |
(Optional.) Specify the password for the requesting node. If you choose to specify a password, you must encrypt it. See Encrypting Passwords. |
(Optional.) Specify the name of the subchannel. Messages published to this queue go to the subchannel indicated. |
JMS Topic Subscriber Properties
You can configure multiple topics, in the section of the integrationGateway.properties file labeled JMS configuration Section. To configure multiple topics, use the convention ig.topic1, ig.topic2, ig.topic3, and so on.
Property |
Description |
ig.jms.Topics |
Specify the number of topic subscribers to instantiate. |
ig. jms.Topic1 |
Specify the topic name. |
ig. jms.Topic1.Provider |
Specify the topic provider name. |
Specify the JMSFactory name that is bound to JNDI for the topic. |
|
ig. jms.Topic1.MessageSelector |
(Optional.) Specify the message filter. |
ig. jms.Topic1.URL |
Specify the JMS provider’s URL to JNDI. |
ig. jms.Topic1.User |
(Optional.) Specify the JMS topic user name. |
(Optional.) Specify the JMS topic password. If you choose to specify a password, you must encrypt it. See Encrypting Passwords. |
|
ig.jms.Topic1.SecurityPrincipal |
This property is required if you are using OAS as the JMS provider. Set this property equal to the user ID for the OAS server. |
ig.jms.Topic1.SecurityCredentials |
This property is required if you are using OAS as the JMS provider. Set this property equal to the password to the OAS server. You must encrypt this value. See Encrypting Passwords. |
ig.jms.Topic1.MessageName |
(Optional.) Specify the name of the service operation or message. |
ig.jms.Topic1.MessageVersion |
(Optional.) Specify the message version. If you specify a message name, you may also specify the message version. |
(Optional.) Specify the name of the requesting node. |
|
ig.jms.Topic1.DestinationNode |
(Optional.) Specify the name of the destination node. |
ig.jms.Topic1.NodePassword |
(Optional.) Specify the password for the requesting node. If you choose to specify a password, you must encrypt it. See Encrypting Passwords. |
(Optional.) Specify the name of the subchannel. Messages published to this topic go to the subchannel indicated. |
To capture JMS listening connector errors in an error queue, set the following properties in the JMS Configuration Section of the integrationGateway.properties file.
Property |
Description |
ig.jms.ErrorQueue |
Specify the name of queue to which error messages are published. |
ig.jms.ErrorQueue-Provider |
Specify the name of the JMS provider. |
ig.jms.ErrorQueue-User |
(Optional.) Specify the JMS error queue user name. |
(Optional.) Specify the JMS error queue password. If you choose to specify a password, you must encrypt it. See Encrypting Passwords. |
|
ig.jms.ErrorQueue.SecurityPrincipal |
This property is required if you are using OAS as the JMS provider. Set this property equal to the user ID for the OAS server. |
ig.jms.ErrorQueue.SecurityCredentials |
This property is required if you are using OAS as the JMS provider. Set this property equal to the password to the OAS server. You must encrypt this value. See Encrypting Passwords. |
Specify the queue connection factory name. |
|
ig.jms.ErrorQueue-Url |
Specify the JMS provider’s URL to JNDI. |
To capture JMS listening connector errors in an error topic, set the following properties in the JMS Configuration Section of the integrationGateway.properties file.
Property |
Description |
ig.jms.ErrorTopic |
Specify the name of topic to which error messages are published. |
ig.jms.ErrorTopic-Provider |
Specify the name of the JMS provider. |
ig.jms.ErrorTopic-User |
(Optional.) Specify the JMS error topic user name. |
(Optional.) Specify the JMS error topic password. If you choose to specify a password, you must encrypt it. See Encrypting Passwords. |
|
Specify the JNDIFactory name. |
|
ig.jms.ErrorTopic-Url |
Specify the JMS provider’s URL to JNDI. |
For the JMS listening connector to process messages, you must set the following properties. You can set these properties in JMS message headers, the integrationGateway.properties file or in the body of the XML message.
You can specify JMS headers in the integrationGateway.properties file for both queues and topics. However you must be using separate queues or topics per requesting node/message combination.
You must supply the properties listed in the following table in the JMS message header when you publish messages from a JMS provider system to the integration gateway.
Property |
Description |
MessageName |
Specify the name of service operation. |
Specify the requesting node name. |
|
FinalDestinationNode |
Specify the final destination nodes. If there are no values, set this property to Null. |
DestinationNode |
Specify the destination node names, separated with commas. If there are no values, set to "" (empty string). |
Enter the node password. This password must be encrypted. See Encrypting Passwords. |
|
(Optional.) Specify the name of a partitioning subqueue to be created for the service operation at runtime. All service operations with the same value for this parameter are processed in the same subqueue. Unlike the subqueues created by selecting partitioning fields, the subqueue that you specify here has no qualifying criteria except the name that you enter. Field-based partitioning is not used for service operations with this parameter. |
The following example shows specifying JMS header properties in the body of an XML message.
<?xml version="1.0" ?> <IBRequest> <ExternalOperationName>JMS_MessageName</ExternalOperationName> <OperationType>Async_or_Synch</OperationType> <From> <RequestingNode>JMS_RequestingNode</RequestingNode> <Password>JMS_NodePassword</Password> <OrigUser></OrigUser> <OrigNode></OrigNode> <OrigProcess></OrigProcess> <OrigTimeStamp></OrigTimeStamp > </From> <To> <FinalDestination>JMS_FinalDestination</FinalDestination> <DestinationNode>JMS_DestinationNode</DestinationNode> </To> <ContentSections> <ContentSection> <NonRepudiation></NonRepudiation> <Data></Data> </ContentSection> </ContentSections> </IBRequest>
When the message received specifies synchronous mode, a reference to the temporary queue or topic must be set in the JMS message header for the JMS listening connector to determination the destination of the message response. The JMS listening connector also sets the JMS correlation ID when it sends the response so the requestor can properly associate the response with its corresponding request.
If any of the message header properties are missing, an error is logged and an error is published to an error topic or error queue. The message that the connector publishes to the error topic has a property call error and is set to True. The error message that is published contains the following information: default message, message ID, message set, message parameters, and body of the message sent.
Starting the JMS Listening Connector
You can start the JMS listening connector using the JMSListeningConnectorAdministrator servlet, or you can start it manually.
To start the JMS listening connector using the servlet:
Deploy the servlet under the web application PSIGW.
To start the servlet on start up of the web server, set the variable Load On Startup.
When you set the Load On Startup option, the JMS listening connector automatically starts when you start the web server. Refer to the web server documentation for more details about starting the servlet automatically when the web server starts.
To start the JMS listening connector manually:
Open a browser and enter the following URL:
http://localhost:port/PSIGW/JMSListeningConnectorAdministrator?Activity=Start
Press Enter.
The message 'JMS Listening Connector Started' displays.
If you experience problems starting the JMS listening connector, check the integration gateway error log file, errorlog.html, for additional information.
Shutting Down the JMS Listening Connector
You can shut down the JMS listening connector by stopping the JMSListeningConnectorAdministrator servlet.
To shut down the JMS listening connector:
Open a browser and enter the following URL:
http://localhost:port/PSIGW/JMSListeningConnectorAdministrator?Activity=Stop
Press Enter.
Your web browser displays a message indicating that the JMS listening connector has stopped.
Note. You must register the JMSListeningConnectorAdministrator servlet object under the web application PSIGW in the web server. The BEA WebLogic, IBM WebSphere or OAS documentation should provide instructions about how to register the servlet. The class name is com.peoplesoft.pt.integrationgateway.listeningconnector.JMSListeningConnectorAdministrator.
JMS is an application programming interface (API) for accessing message systems. JMS provides a standard Java-based interface to the message services of message-oriented middleware (MOM) providers. The JMS target connector is an adapter to JMS providers, and it can be used with MOM and JMS providers, such as Oracle Application Server, IBM MQSeries, BEA WebLogic, Sun iPlanet and others. The following diagram illustrates how messages flow through the JMS API:
Message flow through the JMS API
The primary features of JMS are.
Connection factories that are used to create connections to a specific JMS provider.
Separate publish, subscribe, and point-to-point messaging domains.
These are defined by separate interfaces so that a provider does not have to support both.
Topics for publish and subscribe, as well as queues for point-to-point messaging.
When multiple applications must receive the same message, publish and subscribe messaging is used. In publish and subscribe messaging, all of the subscribers subscribe to a topic and all of the publishers publish messages to a topic. The messaging system distributes messages from the publisher to the subscriber. This domain is mainly used for asynchronous messaging.
When one application must send a message to another application, point-to-point messaging is used. This domain is only for synchronous messaging. There are two basic types of point-to-point messaging systems. One uses a client that directly sends a message to another client. The other, more commonly used implementation uses a message queue.
The JMS target connector either publishes a message to a topic or inserts a message into a queue, based on the node-level properties that you set.
The JMS target connector supports only JNDI file context for the lookup of connection factories, topics, and queue names. (Lightweight Directory Access Protocol (LDAP) is not supported.)
The connector ID for the JMS target connector is JMSTARGET.
Asynchronous and Synchronous Communication
The JMS target connector provides both synchronous and asynchronous modes of communication. When the node level property ReplyTo is set to False, communication is asynchronous. When it is set to True, communication is synchronous.
For asynchronous communication, the JMS target connector publishes messages to MOM or drops messages into a queue and commits the session. It does not wait for a response from the destination system. For synchronous communication, after the connector publishes messages or drops them into a queue, it waits for the temporary topic or queue to respond.
For synchronous communication, the exchanges involve only the publisher and a single subscriber. When a JMS-compliant remote node receives a synchronous request message from PeopleSoft, it must use the value of the message ID of the request message to populate the correlation ID of its response message. When the response is received by the PeopleSoft JMS target connector, it compares the JMS correlation ID of the response message with the JMS message ID of the request. The message is not accepted if these two IDs do not match.
When sending messages either synchronously or asynchronously, the connector sets different string properties in the JMS message header. The properties are used as metadata about the message. The JMS target connector also sets a reference to the temporary queue or topic from which it requires the response.
IBInfo Data Contained in JMS Headers
A message has two parts—the transaction data and the IBInfo header that is the routing envelope used by PeopleSoft Integration Broker. In the event that a receiving system wants to make use of the IBInfo data, IBInfo header information is included when publishing messages to non-PeopleSoft systems when using the JMS target connector or the HTTP target connector.
When using the JMS target connector to send messages to non-PeopleSoft systems, the following IBInfo data is contained in the JMS headers. The content of the message (message body) is not impacted.
RequestingNode
FinalDestinationNode
DestinationNodes
MessageName
MessageType
OrigTimeStamp
NonRepudiation
Gateway-Level Connector Properties
There are no gateway-level JMS target connector properties that you must set.
Node-Level Connector Properties
You must set either a JMS queue or JMS topic for a given node definition. If both are set or are missing the PeopleSoft Integration Broker generates an invalid message exception.
Note. You must register JMS-administered objects—such as topics, queues, and connection factories—that you include as connector properties. The documentation for specific providers should provide instructions on how to register the topics.
JMS message types can be Text, Map Message, Stream, or Object. However, PeopleSoft provides only text messages. If you need to use other message types, you can write a class that implements the com.peoplesoft.pt.integrationgateway.common.jms.ProcessJMSMessage interface, and you set the class name as a value for JMSMessageTypeClass.
The provider name that you specify for the JMSProvider in the node definition must match the JMSProvider.JNDIFactory property that you specify in the integrationGateway.properties file.
The following table describes the node-level connector properties:
Property ID |
Property Name |
Description |
HEADER |
Specify whether to send messages decompressed. Values are:
|
|
JMSTARGET |
JMSAcknowledgement |
Specify the acknowledgment type. Values are:
|
JMSTARGET |
JMSDeliveryMode |
Specify either durable or nondurable delivery. Values are:
|
JMSTARGET |
JMSFactory |
Specify the factory name. The default value is QueueConnectionFactory. |
JMSTARGET |
JMSMessageTimeToLive |
Specify the time in seconds. |
JMSTARGET |
JMSMessageType |
Specify the type of message to send. Values are:
|
JMSTARGET |
JMSMessageTypeClass |
(Optional.) Specify the implementation class of ProcessJMSMessage. You must set this property when the JMSMessageType is anything other than Text. |
JMSTARGET |
(Optional.) Specify the password to access the connection. If you choose to specify a password, you must encrypt it. See Encrypting Passwords. |
|
JMSTARGET |
JMSPriority |
Specify the message priority for delivery. Values range from 0 to 9. A value of 9 indicates the highest priority. The default is 0. |
JMSTARGET |
Specify the JMS provider's name. Values are:
|
|
JMSTARGET |
JMSQueue |
(Optional.) Specify the queue name, if you use a queue. You must use and specify either a topic or a queue. |
JMSTARGET |
JMSReplyTo |
Set this property to True to receive a response from the external system. Values are:
|
JMSTARGET |
JMSTopic |
(Optional.) Specify the topic name, if you use a topic. You must use either a topic or a queue. |
JMSTARGET |
JMSSecurityPrincipal |
Enter the user ID for the OAS server. |
JMSTARGET |
JMSSecurityCredential |
Enter the password to the OAS server. This password must be encrypted. See Encrypting Passwords. |
JMSTARGET |
JMSUrl |
Specify the URL. |
JMSTARGET |
JMSUserName |
(Optional.) Specify the username to establish a connection to the JMS. |
JMSTARGET |
Specify the time in milliseconds for the connector to wait for the temporary response queue to return a synchronous response message. If a response fails to appear in the queue within the specified period, the transaction fails and the queue is deleted. The default value is 60000 (60 seconds). |
Before using the JMS target connector, verify that:
The JMS messaging system is running.
All JMS connection factories, topics, and queues are registered for JNDI lookup.
A username and a password are created in the JMS system for use as values for the properties JMSUserName and JMSPassword.
JMS Target Connector Errors and Exceptions
The JMS target connector may generate the following exceptions:
Exception |
Cause |
InvalidMessageException |
This exception is generated when any node level or connector parameters are not set properly. Examples are:
|
ExternalApplicationException |
This exception is generated when:
|
GeneralFrameWorkException |
This exception is generated when a naming exception occurs. |
The JMS providers that PeopleSoft supports are BEA WebLogic, Sun iPlanet, IBM MQSeries and Oracle Application Server. However, to meet your business requirements you can add generic JMS providers.
This section provides lists of configuration tasks to perform on the JMS listening connector and JMS target connector to add a generic JMS provider to PeopleSoft Integration Broker.
Configuring the JMS Listening Connector for Generic JMS Providers
To configure the JMS listening connector for a generic JMS provider:
Obtain the following information from the provider:
JMS jar file.
JNDIFactory information
Determine if messaging will be in topics or queues.
Determine if error handling will be in topics or queues.
Update JMS properties in the integrationGateway.properties file:
Update the JNDIFactory entry.
For example if the provider were Tibco the entry might be:
ig.jms.JMSProvider.JNDIFactory.Tibco=com.tibco.JMSFactory
Populate the appropriate messaging topic and queue entries based on how messaging will be handled.
Populate the appropriate error topic and queue entries based on how messaging will be handled.
In addition to the information provided in this section, review the JMS Headers Properties section of this chapter which discusses the required information that must be in the headers of each message processed by the JMS listening connector.
Configuring the JMS Target Connector for Generic JMS Providers
To configure the JMS target connector for a generic JMS provider:
Define a node for the provider.
Assign the JMS target connector to the provider node and specify the target connector properties.
This section discusses the simple file target connector.
With the simple file target connector, you can save PeopleSoft messages as files in XML format. This enables you to verify that:
You have composed messages correctly.
The messages contain the content that you want to send.
You can use the Simple File target connector to send messages using the PUT command and receive messages using the GET command.
The connector ID for the simple file target connector is FILEOUTPUT.
To secure files during processing, set the property ig.fileconnector.password in the integrationGateway.properties file, in addition to the Password property in the connector properties set in the Gateways component.
Setting file security is optional. However, if you use this feature, both passwords must match and be encrypted.
See Encrypting Passwords.
The following table describes the node-level connector properties:
Property ID |
Property Name |
Description |
HEADER |
Specify whether to save messages decompressed. Values are:
|
|
PROPERTY |
FilePath |
Specify the location where the connector saves the output file. The default location is c:\temp. |
PROPERTY |
FileName |
(Optional.) Specify the name of the output file. The file's default name has the following format: sourcenodename.operationname. If the outbound message has multiple segments, each segment is saved as an individual file and each file is appended with its segment ID. |
PROPERTY |
Specify the method used to send messages. The valid values are:
|
|
PROPERTY |
(Optional.) Specify a password for secure processing. For secure processing, you must also set the ig.fileconnector.password in the integrationGateway.properties file. See the Setting File Security section earlier in this chapter. |
This section discusses working with the FTP target connector.
The FTP target connector enables the gateway to use FTP to send messages to and receive messages from FTP servers. It uses the PUT command to place messages or files from the integration gateway onto remote FTP servers. The GET command is used to receive messages from FTP servers. Outbound messages through the FTP target connector are UTF-8 encoded.
Note. The FTP target connector handles string-based data only. Binary data is not natively supported in PeopleSoft Integration Broker.
PeopleSoft Integration Broker also supports secure communication with FTP servers using FTPS.
The connector ID for the FTP target connector is FTPTARGET.
In addition to specifying Java Archive (JAR) files in the web server CLASSPATH and setting node-level connector properties, to use this connector you must also specify the integration gateway URL in the Gateways component. Information about specifying the required JAR files and setting node-level FTP and FTPS connector properties is discussed in this section.
For the FTP target connector to function properly the following JAR files from IBM must reside in the CLASSPATH of the web server running the integration gateway:
FTPProtocol.jar
ipworksssl.jar (required for FTPS)
This section describes the required node-level properties you must set to use the FTP target connector.
The following table describes the required node-level connector properties:
Property ID |
Property Name |
Description |
HEADER |
Specify whether to send messages decompressed. Values are:
|
|
FTPTARGET |
HOSTNAME |
Specify the IP address or name of the FTP server for the connection. |
FTPTARGET |
Specify the method to send or receive messages. The valid values are:
|
|
FTPTARGET |
DIRECTORY |
Specify the remote directory into which the file is placed. Note. When using the GET method you must specify the location where the file resides for the method to function properly. If not specified, the default directory of the FTP server on the remote site is used. |
FTPTARGET |
FILENAME |
(Optional.) Specify the name of the file saved on the recipient's FTP server. By default, the file name is a concatenation of the following:
If you do not specify a filename, the FTP(S) target connector performs a GET to retrieve the directory list from the remote FTP server. See the section on Directory List Support earlier in this section. |
FTPTARGET |
USERNAME |
Enter the FTP server login ID. |
FTPTARGET |
Enter the password for the login to the FTP server. This password must be encrypted. See Encrypting Passwords. |
|
FTPTARGET |
Specify the time in milliseconds for the connector to wait for the message to transmit. If the timeout period expires without a successful transmission, the transaction fails. The default value is 50000 (50 seconds). |
|
FTPTARGET |
TYPE |
Indicates the FTP mode used to transfer the file. The valid options are:
When you select ASCII, all characters are converted to their ASCII equivalents. When you select BINARY, data is copied bit-by-bit and no conversion is performed. |
The following table describes properties to use for secure FTPS communication.
Property ID |
Property Name |
Description |
FTPTARGET |
FTPS |
Enables secure communication over FTP. Values are:
|
FTPTARGET |
(Optional.) To use client authentication when establishing a connection with the target or receiving system, enable the CLIENTCERT property. |
|
FTPTARGET |
PORT |
Specify the port used for communication. The default port is 21. |
FTPTARGET |
SSLSTARTMODE |
(Optional). Use this property to set the SSL start mode. Values are:
|
One of the optional node-level FTP connector properties is FILENAME. If you do not know the file name of the file you would like to receive but do not know the directory in which it resides, you can use the GETDIRLIST method to retrieve a directory list. The directory list is retrieved in XML format and you must parse the XMLDocument to read its contents. You can then use the GET method to get the actual file. The following example shows the format of a returned directory list.
<DirList> <File name="sample.bat"> <Date></Date> <Size>1234</Size> <Time></Time> <isFile>True</isFile> </File> <File name="sample2.bat"> <Date></Date> <Size>1234</Size> <Time></Time> <isFile>True</isFile> </File> <File name="temp"> <Date></Date> <Size>1234</Size> <Time></Time> <isFile>False</isFile> </File> </DirList> Date : Date on the file on remote system Time : Time on the file on remote system Size : Size of the file isFile : True if it is a file. False if it is a directory.
The following example shows the code needed to use the FTP connector to get a list of the files in a directory, run through the list of files, select a file, and retrieve it. To use this example, you must know the directory in which the file resides.
If you know the name of the file you wish to receive but do not know the directory, use the FILENAME property and the GETDIRLIST method to retrieve a directory list, as described previously in this section.
Local XmlDoc &Output; Local Message &MSG1, &MSG2, &MSG3; &MSG = CreateMessage(OPERATION.QE_FLIGHTPLAN_UNSTRUCT); /* Set ConnectorName and Connector ClassName */ &MSG.IBInfo.IBConnectorInfo.ConnectorName = "FTPTARGET"; &MSG.IBInfo.IBConnectorInfo.ConnectorClassName = "FTPTargetConnector"; /* Set the FTP connector properties in the ConnectorInfo */ /* Method name can be either Get or GetDirlist. */ &nRet = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties("Method", "GET",%Property); &nRet = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties("HOSTNAME", "ftp.ftpserver.com",%Property); &nRet = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties("USERNAME", "sam",%Property); /* Encrypt the password */ &pscipher = CreateJavaObject("com.peoplesoft.pt.integrationgateway.common. EncryptPassword"); &encPassword= &pscipher.encryptPassword("ftpserverpassword"); &pscipher = Null; &string_return_value = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties ("PASSWORD", encPassword,%Property,); &string_return_value = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties ("DIRECTORY", "/incoming/tmp",); /* Do Connector Request */ &MSG2 = %IntBroker.ConnectorRequest(&MSG); /* Get XMLDoc from MSG2*/ &fileListXmlDoc = &MSG2.GetXmlDoc(); /*Parse the XMLDoc. Structure of the DirList Message is <DirList> <File name="sample.bat"> <Date></Date> <Size>1234</Size> <Time></Time> <isFile>True/False</isFile> </File> </DirList>*/ &XmlNode = &fileListXmlDoc .DocumentElement.FindNode("File "); /* Get the file name */ &fileName = &XmlNode.NodeValue /* Get the file name from the Remote FTPServer */ &MSG = CreateMessage(OPERATION.QE_FLIGHTPLAN_UNSTRUCT); /* Set ConnectorName and Connector ClassName */ &MSG.IBInfo.IBConnectorInfo.ConnectorName = "FTPTARGET"; &MSG.IBInfo.IBConnectorInfo.ConnectorClassName = "FTPTargetConnector"; /* Set the FTP connector properties in the ConnectorInfo */ /* Mehtod name can be either Get */ &nRet = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties("Method", "GET",%Property); &nRet = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties("FILENAME", &fileName,%Property); &nRet = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties("HOSTNAME", "ftp.ftpserver.com",%Property); &nRet = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties("USERNAME", "sam",%Property); /* Encrypt the password */ &pscipher = CreateJavaObject("com.peoplesoft.pt.integrationgateway.common. EncryptPassword"); &encPassword= &pscipher.encryptPassword("ftpserverpassword"); &pscipher = Null; &nRet = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties("PASSWORD", encPassword,%Property,); &nRet = &MSG.IBinfo.IBConnectorInfo.AddConnectorProperties("DIRECTORY", "/incoming/tmp",); /* Do Connector Request */ &MSG3 = %IntBroker.ConnectorRequest(&MSG);
This section provides an overview of the Applicability Statement 2 (AS2) specification and discusses how to:
Work with the AS2 listening connector.
Work with AS2 response connector.
Work with the AS2 target connector.
AS2 is specification for Electronic Data Interchange (EDI) between organizations using the internet. AS2 uses Secure/Multipurpose Internet Mail Extensions (S/MIME), which secures data with authentication, nonrepudiation and encryption. The transportation protocol for this specification is HTTP and HTTPS for real-time communication. S/MIME secures data with authentication, message integrity and nonrepudiation.
PeopleSoft Integration Broker provides three connectors for use with AS2:
AS2 listening connector |
Use the AS2 listening connector to receive request messages in AS2 format. |
AS2 response connector |
The AS2 response connector sends acknowledgements for data you receive from the AS2 listening connector. |
AS2 target connector |
Use the AS2 target connector to send messages in AS2 format. |
You can use the AS2 listening and target connectors to transport any kind of data, including, but not limited to, XML, EDI, text and binary data.
AS2 uses two different message types: the request message containing the data to be integrated and the Message Disposition Notification (MDN) to acknowledge the receipt of the data.
AS2 message exchange can occur over HTTP or HTTPS. The sender must request and MDN from the receiver, that enables the sender to verify that the message has been transferred in an unmodified state and that the receiver has been able to decompress or decrypt the message.
As an option, an MDN may be digitally signed, enabling the recipient to authenticate the sender of the MDN to check the integrity of the incoming message.
MDNs can be delivered synchronously or asynchronously.
Synchronous MDNs
Synchronous MDNs are returned to the sender in the same HTTP connection that sent the message. Processing does not continue until the sender receives the MDN.
Asynchronous MDNs
Asynchronous MDNs are delivered to the sender at a later time after the transmission of the message.
AS2 Requests initiated by the AS2 target connector with an asynchronous MDN Type must send MDN asynchronous responses to the AS2 response connector at the following URL:
http://<SERVER><PORT>/PSIGW/AS2ResponseConnector
The AS2 response connector processes MDNs by verifying them with sent request and publishes a response message to the PeopleSoft Integration Broker.
When a message is published the AS2 target connector stores the information regarding the request (for example, MessageID, signed algorithm, and so forth) for verifying the response on the integration gateway. When the response is received, the AS2 response connector verifies with the request information and publishes a response message to PeopleSoft Integration Broker.
A published asynchronous response is an empty message with the following structure:
<? Xml version="1.0"> <AS2ASyncResponse> <ConversationID>123213</ConversationID> <OriginalMessageID>23234<OriginalMessageID> <MDN>123123 . . </MDN> <ReceiptMessage> <![CDATA[Receipt message.]]></ReceiptMessage> <MDNVerified>True/False<MDNVerified> </AS2ASyncResponse>
PeopleSoft Integration Broker generates the conversation ID tag when a message is published. This tag is used to correlate the MDN with the request message.
If the MDNVerified tag is set to True, the integration gateway has successfully verified the MDN.
Note. To provide application the flexibility to take appropriate action with responses and response status information, it is the developer's responsibility to write subscription PeopleCode for processing acknowledgement messages and correlating them with requests. Without subscription PeopleCode to consume the message, an MDN will not be sent back to the source.
The AS2 connectors implement correlation IDs in MDNs. The AS2 target connector saves the outbound message ID as a correlation ID in the directory defined in the ig.AS2.AS2Directory in the integrationgateway.properties file .
When the response arrives later, the AS2ResponseConnector checks the conversationID from the response message with the one saved by early. If they don’t match, the transaction fails.
In outbound messages, always use the %Intbroker.publish () function. Using %IntBroker.SyncRequest results in errors.
The AS2 listening connector can receive inbound asynchronous request messages, and can send synchronous and asynchronous MDNs. This section describes how these messages flow through the AS2 listening connector and how MDNs are created and returned to the senders of messages.
Inbound Asynchronous Request—Synchronous MDN
This section describes the process flow of an inbound asynchronous request message through the AS2 listening connector, with the integration engine generating a synchronous MDN.
The AS2 listening connector receives an AS2 message over an open HTTP connection.
The connector verifies the digital signature and decrypts the message. If necessary, the connector also decompresses the message.
The AS2 listening connector sends the message to the integration engine.
The integration engine creates an MDN and sends it back to the integration gateway as part of the HTTP response message.
Inbound asynchronous Request—Asynchronous MDN
This section describes the process flow of an inbound asynchronous request message through the AS2 listening connector, with the integration engine generating an asynchronous MDN.
The AS2 listening connector receives a message over HTTP.
The AS2 listening connector closes the connection and sends a status code of 200.
The connector verifies the digital signature and decrypts the message. If necessary, the connector also decompresses the message.
The AS2 listening connector sends the message to the integration engine.
The integration engine creates an MDN and sends it back to the sender as an asynchronous transaction, using the AS2 target connector.
When a request is published, PeopleSoft Integration Broker generates a conversation ID in the message ID field of the request message. Then, when an MDN comes back it extracts the conversation ID from the message to correlate the MDN acknowledgement with the request message.
Note. You must write subscription PeopleCode to process acknowledgement messages and to correlate them with requests messages. This provides flexibility for you to specify actions to take based on response status.
When it receives an MDN, the AS2 response connector checks for the conversation ID, constructs the asynchronous response message by setting the conversation ID, MDN, and the message/subject received with the MDN. It then sends the response to the integration engine.
This section describes how messages flow through the AS2 target connector and how the connector processes MDNs.
Note. The AS2 target connector sends message requests in asynchronous mode only. However, the connector can receive MDNs in synchronous or asynchronous mode.
Outbound Asynchronous Request—Synchronous MDN
This section describes the process flow of outbound asynchronous request message through the AS2 listening connector, with the integration engine generating a synchronous MDN.
The AS2 target connector receives the request message from the integration engine.
The AS2 target connector checks the outbound message to determine if an MDN is required, and if so, whether the MDN is synchronous or asynchronous.
The AS2 connector makes an HTTP request to the receiver.
The AS2 connector verifies the MDN in the HTTP response if an MDN is requested.
Once the MDN is verified, the AS2 connector sends a response to the integration engine indicating whether the message was sent successfully.
Outbound Asynchronous Request—Asynchronous MDN
This section describes the process flow of an outbound synchronous request message through the AS2 listening connector, with the integration engine generating an asynchronous MDN.
The AS2 target connector receives the request message from the integration engine.
The AS2 target connector checks the outbound message to determine if an MDN is required, and if so, whether the MDN is synchronous or asynchronous.
Check for MDNAsynchronousURL and request a Asynchronous Receipt (MDN).
The AS2 connector makes an HTTP request to the receiver.
The AS2 connector reads the HTTP status code and sends a response to the integration engine indicating whether the message was sent successfully.
At a later time, the AS2 listening connector receives an MDN from the receiver. The MDN is then processed.
See Understanding MDNs.
This section describes how to use the AS2 listening connector and discusses how to:
Set required header parameters.
Set optional header parameters.
Set gateway-level properties.
Setting Required Header Parameters
The following HTTP header parameters are require in incoming AS2 requests:
HTTP Header Parameter |
Description |
AS2From |
Specify the name of the sending node. |
AS2To |
Specify the name of the receiving node. |
If the AS2From and AS2To node names are not PeopleSoft node names, you must map them in the integrationGateway.properties file.
Setting Optional Header Parameters
When using the AS2 listening connector, you may set the following optional HTTP header parameters:
HTTP Header Parameter |
Description |
MessageName |
(Optional.) Specify the name of the incoming operation or message. Note. You can specify the message name in the HTTP header, HTTP query string or in the integrationGateway.properties file. |
Password |
(Optional.) Specify an encrypted password for node authentication. |
MessageVersion |
(Optional.) Specify the version of the message. If you specify a message name in the MessageName parameter, enter the message version. |
OrigUser |
(Optional.) Specify the username of the originating user. |
ExternalMessageID |
(Optional.) Specify a unique ID that identifies the message. If two messages are published with the same external message ID, the first message is processed and the second messages is marked as a duplicate. |
Setting Gateway-Level Properties
To configure the AS2 listening connector, you must set properties located in the integrationGateway.properties file for each message the connector receives.
Note. Replace text in angle brackets (for example <project_branch>) with the appropriate values.
Property |
Description |
ig.AS2.LogDirectory |
(Optional.) Specify the directory to log all incoming and outgoing AS2 requests and responses. For example: ig.AS2.LogDirectory = c://temp//as2//logs |
ig.AS2.KeyStorePath |
Specify the path to the Java keystore. For example: C://pt849 //webserv//peoplesoft//keystore//pskey |
ig.AS2.KeyStorePassword |
Specify the encrypted password to the Java keystore. For example: GD9klUFw8760HVaqeT4pkg== |
ig.AS2.AS2ListenerMap.From |
(Optional.) If a sending or receiving node is not a PeopleSoft node, you must map it in the integrationGateway.properties file. Use this property if the sending system is not a PeopleSoft node. Replace the information in brackets with an alias of the sending system and set it equal to the remote node name in the PeopleSoft application database. For example: ig.AS2.AS2ListenerMap.From.QE_SOURCE= PT_LOCAL |
ig.AS2.AS2ListenerMap.To |
(Optional.) If a sending or receiving node is not a PeopleSoft node, you must map it in the integrationGateway.properties file. Use this property if the receiving system is not a PeopleSoft node. Replace the information in brackets with an alias of the receiving system and set it equal to the remote node name in the PeopleSoft application database. For example: ig.AS2.AS2ListenerMap.To. QE_IBTGT= AS2TARGETNODE |
ig.AS2.<source>.<target>. |
Specify the certificate (target) alias name. Replace <source> and <target> with the source and target PeopleSoft node names used in the AS2FROM and AS2TO HTTP headers, or those mapped in the properties above. For example: ig.AS2.PT_LOCAL.AS2TARGETNODE.CertificateAlias=JFRANCO030204 |
ig.AS2.<source>.<target>. |
Specify the certificate alias (source) used for signing the certificate. For example: ig.AS2.PT_LOCAL.AS2TARGETNODE.SignerCertificateAlias=JRICHAR2030104 |
ig.AS2.<source>.<target>.MessageName |
(Optional.) Specify the name of the incoming message. Replace <source> and <target> with the source and target PeopleSoft node names used in the AS2FROM and AS2TO HTTP headers, or those mapped in the properties above. For example: ig.AS2. PT_LOCAL.AS2TARGETNODE.MessageName=EXAMPLE_REQUEST_MSG Note. You can specify the message name in the HTTP header, HTTP query string or in the integrationGateway.properties file. |
This section describes using the AS2 target connector and discusses how to:
Set node-level connector properties.
Set gateway-level connector properties.
Setting Node-Level Connector Properties
The following table lists the required and optional AS2 target connector properties you set at the node level. You set these properties in the Gateways component in the PeopleSoft Pure Internet Architecture.
Property ID |
Property |
Description |
AS2PROPERTY |
AS2From |
Specify the name of the sending node. |
AS2PROPERTY |
AS2To |
Specify the name of the receiving node. |
AS2PROPERTY |
AsynchronousMDN |
Specify a URL that indicates how and where the MDN is delivered. For example: http://<source webserver>:<http port>/PSIGW/AS2ResponseConnector By specifying a valid URL you can request asynchronous delivery instead. The URL indicates the destination for the reply, and may use any appropriate protocol, such as HTTP or HTTPS. If this property is set to an empty string (Default), the receipt is returned synchronously within an HTTP reply. |
AS2PROPERTY |
Compression |
Specify whether to compress outbound AS2 messages. Options are:
|
AS2PROPERTY |
EDIType |
Specify the content type of the message. Options are:
|
AS2PROPERTY |
EnableCRLF |
(Optional.) PeopleSoft Integration Broker automatically removes carriage returns in messages and retains line feeds. Use this property to specify whether to add a carriage return (CR) back to the end of a line feed (LF). Options are:
|
AS2PROPERTY |
EncryptingAlgorithm |
(Optional.) Specify the algorithm used to encrypt data. The default value is 3DES. Use of this algorithm is highly recommended. When you specify an encrypting algorithm, you must set the RecipientCertAlias to a valid certificate. The data is encrypted using the RecipientCertAlias value you define with the algorithm you specify here. |
AS2PROPERTY |
FirewallHost |
(Optional.) If connecting through a firewall, specify the firewall host name or IP address. |
AS2PROPERTY |
FirewallPassword |
(Optional.) If connecting through a firewall, specify an encrypted password if authentication is to be used when connecting through the firewall. |
AS2PROPERTY |
FirewallPort |
(Optional.) If connecting through a firewall, specify the port of the firewall to which to connect. See the description for the FirewallType property for guidelines on how the default setting is made. |
AS2PROPERTY |
FirewallType |
(Optional.) If connecting through a firewall, specify the type of firewall. Options are:
You can overwrite port numbers in the FirewallProperty field. |
AS2PROPERTY |
Firewall User |
(Optional.) If connecting through a firewall, specify the firewall user name if authentication is to be used connecting through a firewall. |
AS2PROPERTY |
Http Password |
(Optional.) Specify the HTTP username if HTTP authentication is to be used |
AS2PROPERTY |
HttpUser |
(Optional.) Specify the HTTP username password if HTTP authentication is to be used. |
AS2PROPERTY |
MDNSecurityType |
(Optional.) Specify the algorithm to use for signing the MDN. Options are:
|
AS2PROPERTY |
MDNType |
Specify whether to generate an MDN, and if so the type to generate. Options are:
|
AS2PROPERTY |
ProxyPassword |
(Optional.) Specify the proxy user password. |
AS2PROPERTY |
ProxyPort |
(Optional.) Port of the proxy server to which to connect. |
AS2PROPERTY |
ProxySSL |
(Optional.) Options are:
|
AS2PROPERTY |
ProxyServer |
(Optional.) Specify the proxy server name or IP address. |
AS2PROPERTY |
ProxyUser |
(Optional.) Specify the user name if authentication is to be used to connect through a proxy |
AS2PROPERTY |
RecipientCertAlias |
(Optional.) Specify the alias name of the recipient's certificate. Note. This property is required if the EncryptingAlgorithm property is set. |
AS2PROPERTY |
SecurityType |
Specify the security type of the request message. Options are:
|
AS2PROPERTY |
SignersCertificateSubject |
Specify the alias name of the signing certificate. This property is required if the SecurityType property is set to SignedOnly or Signed-Encrypted. |
AS2PROPERTY |
TimeOut |
(Optional.) Specify the timeout for the connector in seconds. When this value is set to 0, all operation will run uninterrupted until successful completion, or an error condition is encountered. The default value is 60. |
AS2PROPERTY |
User Agent |
(Optional.) Specify the name of the user agent or email address. |
BACKUPURL |
URL |
(Optional.) Specify the backup URL to use to send messages if delivery to the primary URL fails. |
PRIMARYURL |
URL |
Specify the URL to which messages are sent using this connector. |
HEADER |
sendUncompressed |
Specify whether to send messages decompressed. Options are: Y: Send messages decompressed and decoded. (Default.) N: Send messages compressed and base64 encoded. Note. Do not change the default value. |
PRIMARYURL |
URL |
Specify the URL to which messages are sent using this connector. For example: http://<target webserver>:<http port>/PSIGW/AS2ListeningConnector |
Setting Gateway-Level Connector Properties
This section describes required AS2 target connector properties you set in the integrationGateway.properties file.
The AS2 target connector uses digital certificates for digital signatures, nonrepudiation and encryption.
As a result, you must set up digital certificates to use the connector.
Public keys and signatures are stored in certificates, so there must be a place in the organization to store these keys and certificates.
The place to store keys is the key store. A key store can be a flat file, a database or an LDAP server that can store key material. PeopleSoft keystore is installed with the PeopleSoft Pure Internet Architecture at the following default location: <PS_HOME>\webserver\peoplesoft\keystore. PeopleSoft AS2 connectors will invoke these certificates from JKS. JKS exists on the web server.
The following properties should be set in the integrationGateway.properties file of the source web server in order to use the AS2 target connector. Use the PSCipher utility to encrypt the password.
Property |
Description |
ig.AS2.KeyStorePath |
Specify the path to the Java keystore. For example: C://pt849//webserv//peoplesoft//keystore//pskey |
ig.AS2.KeyStorePassword |
Specify the encrypted password to the Java keystore. For example: GD9klUFw8760HVaqeT4pkg== |
ig.AS2.AS2Directory |
Specify the directory to log MDN responses. This property is required for asynchronous MDNs. For example: c://temp//as2 |
ig.AS2.LogDirectory |
(Optional.) Specify the directory to log all incoming and outgoing AS2 requests and responses. For example: c://temp//as2//logs |
The SMTP target connector enables the gateway to send messages by email using SMTP. This connector supports plain text and HTML text content types. The connector supports the following fields: To:, From:, cc:, and bcc:. You can send data of any format in the body of the email.
You can include only one email address per type of address in the header. For instance, you can include only one addressee as a destination (DestEmailAddress).
The connector ID for the SMTP target connector is SMTPTARGET.
Gateway-Level Connector Properties
The SMTP target connector has one gateway-level property, in the section of the integrationGateway.properties file labeled DELIVERED CONNECTOR CONFIGURATION Section. This property specifies the SMTP mail server host through which the connector sends messages. Specify the host as follows:
ig.connector.smtptargetconnector.host=SMTP_domain_name
Node-Level Connector Properties
The following table describes the required node-level connector properties:
Property ID |
Property Name |
Description |
SMTPTARGET |
SourceEmailAddress |
Specify the email address from which you send messages. Only one address is currently allowed. |
SMTPTARGET |
DestEmailAddress |
Specify the email address to which you send messages. Only one address is currently allowed. |
SMTPTARGET |
CC |
(Optional.) Specify the email address of the party to which you copy messages. Only one address is currently allowed. |
SMTPTARGET |
BCC |
(Optional.) Specify the email address of the party to which you send blind copies of messages. Only one address is currently allowed. |
HEADER |
Content-Type |
(Optional.) Specify the type of text content that makes up the email body. Values are:
|
HEADER |
Specify whether to send messages decompressed. Values are:
|