Configure the Socket JSON Input adapter by specifying values for the ESP connector, formatter, and transporter modules in the adapter configuration file. The Socket JSON Input adapter uses SimpleDateFormat formatting codes.
XML Element | Description |
---|---|
Log4jProperty |
Type: string (Optional) Specify a full path to the log4j.properties logging file you wish to use. The default value is STREAMING_HOME/adapters/framework/config/log4j.properties. |
XML Element | Description |
---|---|
Cipher |
Type: string (Optional) Specify a full path to the adapter.key encryption file you wish to use. The default value is $STREAMING_HOME/adapters/framework/adapter.key. |
The Socket Input transporter reads binary data from the socket interface, wraps it with ByteBuffer, and sends it to the next module that is configured in the adapter configuration file.
XML Element | Description |
---|---|
Module |
(Required) Element containing all information for this module. It contains a type attribute for specifying the module type. For example, transporter. |
InstanceName |
Type: string (Required) Instance name of the specific module you want to use. For example, MyInputTransporter. |
Name |
Type: string (Required) Name of the module as defined in the modulesdefine.xml file. For example, <TransporterType>InputTransporter. |
Next |
Type: string (Required) Instance name of the module that follows this one. |
BufferMaxSize |
Type: integer (Advanced) Capacity of the buffer queue between this module and the next. The default value is 10240. |
Parameters |
(Required) Element containing the SocketInputTransporterParameters element. |
SocketInputTransporterParameters |
(Required) Element containing elements for the Socket Input transporter. |
Host |
Type: string (Required if EpFile is set to null) Specify the socket server name. No default value. |
Port |
Type: integer (Required if EpFile is set to null) Specify the socket server port. If you set this to -1, the adapter reads from the ephemeral port file, which is specified in the EpFile element. The default value is 12345. |
EpFile |
Type: string (Required if Host and Port are set to null) Specify the file that contains the socket server name/IP and port number. If sandboxing is enabled, this file must reside in the <sandbox-base-directory>/adapters/<workspace-name> or $STREAMING_HOME/adapters/framework directory or one of their subdirectories. If the file is in a different location, the adapter will not be able to successfully connect to Event Stream Processor. Specify only host and port information, on separate lines, in this
file. For example, the syntax
is
host=hostName port=portNumber No default value. |
Retryperiod |
Type: integer (Advanced) Designates the time period for attempting to reestablish an outgoing connection, in seconds. The default value is 0. |
BlockSize |
Type: integer (Advanced) Define the size of the data block when transporting data from the socket server to the transporter. The default value is 1024. |
KeepAlive |
Type: boolean (Advanced) If set to true, the adapter disconnects from the socket server if there are no data transports for the duration of time specified in your router configuration. For example, if you set your router configuration to two hours and there are no messages during that time, the adapter disconnects from the socket server. The default value is false. |
The JSON Stream to JSON String formatter reads data from InputStream, splits it into standalone JSON message strings, and sends these message strings to the next module that is configured in the adapter configuration file.
XML Element | Description |
---|---|
Module |
(Required) Element containing all information for this module. It contains a type attribute for specifying the module type. For example, formatter. |
InstanceName |
Type: string (Required) Instance name of the specific module you want to use. For example, MyInputTransporter. |
Name |
Type: string (Required) Name of the module as defined in the modulesdefine.xml file. For example, <TransporterType>InputTransporter. |
Next |
Type: string (Required) Instance name of the module that follows this one. |
BufferMaxSize |
Type: integer (Advanced) Capacity of the buffer queue between this module and the next. The default value is 10240. |
Parameters |
(Required) Element containing the JsonStreamToJsonStringFormatterParameters element. |
JsonStreamToJsonStringFormatterParameters |
(Required) Element containing elements for the Streaming JSON to JSON String formatter. |
CharsetName |
Type: string (Optional) Specify the name of a supported charset. The default value is US-ASCII. |
The JSON String to ESP formatter translates JSON strings to AepRecord objects.
Parameter | Description |
---|---|
Module |
(Required) Element containing all information for this module. It contains a type attribute for specifying the module type. For example, formatter. |
InstanceName |
Type: string (Required) Instance name of the specific module you want to use. For example, MyInputTransporter. |
Name |
Type: string (Required) Name of the module as defined in the modulesdefine.xml file. For example, <TransporterType>InputTransporter. |
Next |
Type: string (Required) Instance name of the module that follows this one. |
BufferMaxSize |
Type: integer (Advanced) Capacity of the buffer queue between this module and the next. The default value is 10240. |
Parameters |
(Required) Element containing the JsonStringToEspFormatterParameters element. |
JsonStringToEspFormatterParameters |
(Required) Element containing the JSON String to ESP formatter elements. |
ColumnMappings |
(Required) Element containing the ColsMapping element. |
ColsMapping |
Type: complexType (Required) Element which contains the Column element. You can have multiple ColsMapping elements if you are using an ESPMultiStreamPublisher. This element has two attributes:
|
Column |
Type: string (Required) Specify a JSONPath expression for the JSON data that you want to map to columns of a stream. This expression is matched to the value specified in the rootpath attribute of the ColsMapping element, if applicable. You can have multiple Column elements. There are two types of JSON data: array or object.
For example, if you had the following JSON data about a
person,
{ "firstName": "John", "lastName": "Smith", "phoneNumbers": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ], "friends": [ ["female1","female2","female3"], ["male1","male2","male3"] ] } If you want the numbers and types of phone numbers, specify phoneNumbers as the rootpath value and numbers and type as the JSONPath expressions in the Column element. You can also specify * for Column which indicates you want all the data in an array (that does not have key value data within it). For example, if you wanted all the female friends data, specify friends[1] for rootpath and * for Column. The first <Column/> element and its value are mapped to the first column of the stream, the second <Column/> element and its value are mapped to the second column of the stream, and so on. |
SecondDateFormat |
Type: string (Advanced) The format string for parsing SecondDate values. For example, yyyy-MM-dd'T'HH:mm:ss is the default value. |
MsDateFormat |
Type: string (Advanced) The format string for parsing MsDate values. For example, yyyy-MM-dd'T'HH:mm:ss.SSS is the default value. |
The ESP Publisher module obtains data from a transporter or formatter module and publishes it to the SAP Event Stream Processor project.
Parameter | Description |
---|---|
Module |
(Required) Element containing all information for this module. It contains a type attribute for specifying the module type. For example, formatter. |
InstanceName |
Type: string (Required) Instance name of the specific module you want to use. For example, MyInputTransporter. |
Name |
Type: string (Required) Name of the module as defined in the modulesdefine.xml file. For example, <TransporterType>InputTransporter. |
BufferMaxSize |
Type: integer (Advanced) Capacity of the buffer queue between this module and the next. The default value is 10240. |
Parameters |
(Required) Element containing the EspPublisherParameters element. |
EspPublisherParameters |
(Required) Element containing elements for the ESP publisher. |
ProjectName |
Type: string (Required if adapter is running in standalone mode; optional if it is running in managed mode) Name of the ESP project to which the adapter is connected. For example, StreamingProject2. This is the same project tag that you specify later in the adapter configuration file in the Name element within the Event Stream Processor (EspProjects) element. If you are starting the adapter with the ESP project to which it is attached (that is, running the adapter in managed mode), you need not set this element as the adapter automatically detects the project name. |
StreamName |
Type: string (Required if adapter is running in standalone mode; optional if it is running in managed mode) Name of the stream to which the adapter publishes data. If you are starting the adapter with the ESP project to which it is attached (that is, running the adapter in managed mode), you need not set this element as the adapter automatically detects the stream name. |
MaxPubPoolSize |
Type: positive integer (Optional) Maximum size of the record pool. Record pooling, also referred to as block or batch publishing, allows for faster publication since there is less overall resource cost in publishing multiple records together, compared to publishing records individually. Record pooling is disabled if this value is 1. The default value is 256. |
MaxPubPoolTime |
Type: positive integer (Optional) Maximum period of time, in milliseconds, for which records are pooled before being published. If not set, pooling time is unlimited and the pooling strategy is governed by maxPubPoolSize. No default value. |
UseTransactions |
Type: boolean (Optional) If set to true, pooled messages are published to Event Stream Processor in transactions. If set to false, they are published in envelopes. The default value is false. |
SafeOps |
Type: boolean (Advanced) Converts the opcodes INSERT and UPDATE to UPSERT, and converts DELETE to SAFEDELETE. The default value is false. |
SkipDels |
Type: boolean (Advanced) Skips the rows with opcodes DELETE or SAFEDELETE. The default value is false. |
SAP Event Stream Processor elements configure communication between Event Stream Processor and the Socket JSON Input adapter.
XML Element | Description |
---|---|
EspProjects |
(Required) Element containing elements for connecting to Event Stream Processor. |
EspProject |
(Required) Element containing the Name and Uri elements. Specifies information for the ESP project to which the adapter is connected. |
Name |
Type: string (Required) Specifies the unique project tag of the ESP project which the EspConnector (publisher/subscriber) module references. |
Uri |
Type: string (Required) Specifies the total project URI to connect to the ESP project. For example, if you have SSL enabled, use esps://localhost:19011/ws1/p1. |
Security |
(Required) Element containing all the authentication elements below. Specifies details for the authentication method used for Event Stream Processor. |
User |
Type: string (Required) Specifies the user name required to log in to Event Stream Processor (see AuthType). No default value. |
Password |
Type: string (Required) Specifies the password required to log in to Event Stream Processor (see AuthType). Includes an "encrypted" attribute indicating whether the Password value is encrypted. The default value is false. If set to true, the password value is decrypted using RSAKeyStore and RSAKeyStorePassword. |
AuthType |
Type: string (Required) Method used to authenticate to Event Stream Processor. Valid
values are:
If the adapter is operated as a Studio plug-in, AuthType is overridden by the Authentication Mode Studio start-up parameter. |
RSAKeyStore |
Type: string (Dependent required) Specifies the location of the RSA keystore, and decrypts the password value. Required if AuthType is set to server_rsa, or the encrypted attribute for Password is set to true, or both. |
RSAKeyStorePassword |
Type:string (Dependent required) Specifies the keystore password, and decrypts the password value. Required if AuthType is set to server_rsa, or the encrypted attribute for Password is set to true, or both. |
KerberosKDC |
Type: string (Dependent required) Specifies host name of Kerberos key distribution center. Required if AuthType is set to kerberos. |
KerberosRealm |
Type: string (Dependent required) Specifies the Kerberos realm setting. Required if AuthType is set to kerberos. |
KerberosService |
Type: string (Dependent required) Specifies the Kerberos principal name that identifies the Event Stream Processor cluster. Required if AuthType is set to kerberos. |
KerberosTicketCache |
Type: string (Dependent required) Specifies the location of the Kerberos ticket cache file. Required if AuthType is set to kerberos. |
EncryptionAlgorithm |
Type: string (Optional) Used when the encrypted attribute for Password is set to true. If left blank, RSA is used as default. |