Object Store Client Adapter
The ObjectStoreClientadapter is a critical component of the Sterling B2B Integrator, allowing seamless connection with Azure Blob Storage. You can connect your Sterling B2B Integrator to Azure's powerful storage capabilities by utilising the Azure Blob Storage within the ObjectStoreClientadapter.
Azure Blob Storage helps you create data lakes for your analytics needs and provides storage to build powerful cloud-native and mobile apps. Optimize costs with tiered storage for your long-term data and flexibly scale up for high-performance computing and machine learning workloads. With this integration, the Sterling B2B Integrator can harness the virtually unlimited scalability of Azure Blob Storage, efficiently manage and store large volumes of unstructured data, access data seamlessly, and optimize costs based on specific requirements.
In Sterling B2B Integrator v6.2.0.0, you can easily perform operations such as list, get, put, and delete files, as well as make dir
.
In future releases, the ObjectStoreClientadapter will be extended to connect to Google Cloud and S3 enabled Object Stores. Hence, the adapter name and configuration parameter are generic.
azure-storage-file-datalake
library, which works with only on Azure Data Lake Storage Gen2 accounts. Hence, - The Azure account should be upgraded to StorageV2 and it should have the necessary permissions to read, write, and list the container configured.
- Blob versioning is unsupported.
Sterling B2B Integrator | Azure Blob Storage |
---|---|
Bucket | Container |
File / Document | Blob |
Folder | Directory |
sessiontoken | SAS token |
Secret key/Account Key | Account Key |
- Commands are scriptable through BPML
- Accessible through the following services in a business process:
- Object Store Client Begin Session service
- Object Store Client LIST service
- Object Store Client MKDIR service
- Object Store Client PUT service
- Object Store Client GET service
- Object Store Client DELETE service
- Object Store Client End Session service
Category | Description |
---|---|
System name | ObjectStoreClientadapter |
Graphical Process Modeler (GPM) category | None |
Description | Sends Object Store (currently Azure) requests to trading partners. |
Business usage | Use this adapter to send Object Store requests to perform activities such as to get or put files into a directory on Azure Blob Storage. |
Usage Example | A business process is executed that translates a document to send to a trading partner. After the translation, the ObjectStoreClientadapter sends the document to the trading partner. |
Preconfigured? | Yes, with default properties. You need to provide your specific values. |
Requires third-party files? | No |
Platform availability | All Sterling B2B Integrator supported platforms |
Related services | The following services are related. Configured in a business process, they initiate the ObjectStoreClientadapter to perform their services:
|
Application requirements | The ObjectStoreClientadapter should be configured with the Azure Blob Storage account, credentials, and bucket for trading partner. |
Initiates business processes | This adapter does not initiate business processes. |
Invocation | This adapter is not invoked from a business process. |
Business process context considerations | Business processes using Object Store Client services should not be marked as Auto Resume. These services require an established session which will no longer exist after a restart. |
Returned status values | None |
Restrictions | All work bound within an Object Store Client Begin Session service and an Object Store Client End Session service must be within the same business process. |
Persistence level | N/A |
Environment | Supported Environments are:
Note:
|
Testing considerations | To test this adapter, run the ObjectStoreClientDemoAllServices business process and verify that it completes successfully. For more information about the ObjectStoreClientDemoAllServices business process, see the Business Process Example of All Object Store Client Services. Debug information for this adapter is located at: Operations > System > Logs > Log.ObjectStoreClient. |
Implementing the ObjectStoreClientadapter
- Create an ObjectStoreClientadapter configuration. See Sterling B2B Integrator Services and Adapters.
- Configure the ObjectStoreClientadapter. See Configuring the ObjectStoreClientadapter.
Configuring the ObjectStoreClientadapter
- Select Deployment > Services > Configuration.
- Search for ObjectStoreClientadapter or select it from the list.
- Click Edit.
- Specify field settings:
Field Description Name Unique and meaningful name for the adapter configuration. Required. Description Description of adapter. Required. Select a Group Select one of the options:- None – You do not want to include this configuration in a group at this time.
- Create New Group – You can enter a name for a new group in this field, which will then be created along with this configuration.
- Select Group – If you have already created one or more groups for this adapter type, they are displayed in the list. Select group from the list.Note: For more information about groups, see Sterling B2B Integrator Services and Adapters.
Object Store Type Select Object Store Type: Azure
EndPoint URL EndPoint URL of the Azure Blob Storage Region Region of the Azure Blob Storage container Access Key Not used for Azure Blob storage. Secret Key or Account Key Account Key for Azure Blob Storage account Bucket Name Bucket Name. Optional if it is present in begin session or individual services.
See Sterling B2B Integrator and Azure Blob Storage terminology for nomenclature.
Minimum Number of Threads A tuning parameter that indicates the range of threads available for handling events to improve performance. For more information, see Performance and Tuning. Must be less than or equal to the maximum number of threads value. Required. The default value is three. Maximum Number of Threads A tuning parameter that indicates the range of threads available for handling events to improve performance. For more information, see Performance and Tuning. Must be greater than or equal to the minimum number of threads value. Required. The default value is six. Connection Retries The number of times the adapter tries to connect to the Azure Blob Storage service when there is a connection error. Optional. The default value is three. Connection Timeout Amount of time in milliseconds after which the connection terminates in case of a connection error and the number of connections retries is attempted. Optional. The default value is 30000 milliseconds. Read Timeout Time out value in milliseconds. Optional. The default value is 30000 milliseconds. Proxy Server Whether to use a proxy server. Valid values are:
- Yes – Proxy server is used
- No – No proxy server is used
Proxy hostname A valid proxy server hostname or IP address to use as a gateway. Required if proxy server is set to Yes. Proxy port Listen port number of the proxy server. Required if proxy server is set to Yes. Use proxy basic authentication Whether the proxy server requires basic authentication. Valid values are:
- Yes – Proxy basic authentication will be used
- No – Proxy basic authentication will not be used
Proxy username Username to connect to the proxy server. Required if use proxy basic authentication is set to Yes. Proxy password Password to connect to the proxy server. Required if use proxy basic authentication is set to Yes. Use SSL Not supported in the Sterling B2B Integrator v6.2.0.0. Document Storage Type Select Document Storage Type:
- File System
- Database
- System Default
- Object Store [available on OCP]
Note: This document storage type option will be used from BP and not from the adapter configuration.
filepattern
parameter:- Object Store prefixes (similar to folders) are included when matching the
filepattern
. - The
filepattern
must contain a valid regular expression supported by Java 8. - The following are the example values of
filepattern
:Assignment Result <assign to="filepattern">.+</assign>
All Objects <assign to="filepattern">.*log.*</assign>
All objects which contain "log" <assign to="filepattern">fvt.+</assign>
All objects whose name starts with "fvt" <assign to="filepattern">.*.xml</assign>
All objects whose extension is ".xml"
Configuring the objectstoreclient.properties
file
The objectstoreclient.properties
file in the properties directory provides settings for the ObjectStoreClientadapter. These properties can also be set through customer_override. The key for the file is objectstoreclient
. For more information, see Customizing Property Files.
Default Values for the Property
DelayWaitingOnIO
. The default value is 10.copyBufferSize
. The default value is 32768.disablePersistForDocTracking
. The default value is false.idleTimeout
. The default value is 20.maxTotalConnections
. The default value is three.
Configuring the objectstoreclient.properties
file
- Locate the
objectstoreclient.properties.in
file in the properties directory where you installed Sterling B2B Integrator. - Edit the
objectstoreclient.properties.in
file. - Configure the properties.
The properties are listed in the following table:
DelayWaitingOnIO |
Specifies the number of seconds to wait for the data transfer to complete before going into the WAITING_ON_IO state. |
copyBufferSize |
Buffer size in GET and PUT services. |
disablePersistForDocTracking |
Property that disables all persist calls in the Object Store client get service. If this is true, the doc tracking information will not persist. Valid values:
|
idleTimeout |
Idle timeout in seconds for connections in a connection pool. |
maxTotalConnections |
The maximum number of connections in a pool. |
DelayWaitingOnIO
property. Business Process Example of All Object Store Client Services
To help you get started using the ObjectStoreClientadapter and Object Store Server adapter, Sterling B2B Integrator includes a demo that provides an example of all the services. The demo transfers a file from the ObjectStoreClientadapter to Azure. The following graphic shows the business process model of ObjectStoreClientDemoAllServices
.

The BPML code associated with ObjectStoreClientDemoAllServices
is shown below:
ObjectStoreClientDemoAllServices
, replace the dummy values with the actual values in the following BP:secretkey
or accountkey
using the Obscure Data - Process Data Values service and use it in the ObjectStoreclientbeginservice
business process.The following are the instructions for running this business process:
ObjectStoreClientDemoAllServices
services.- Go to Business Process > Manager.
- Search for
ObjectStoreClientDemoAllServices
. - Click Execution Manager > Execute.
- Click Go.
<process name="ObjectStoreClientDemoAllServices">
<sequence>
<!-- Get obscured password -->
<operation name="Obscure Password">
<participant name="ObjectStoreClientObscureParameter"/>
<output message="outmsg">
<assign to="." from="*"></assign>
</output>
<input message="inmsg">
<assign to="." from="*"></assign>
</input>
</operation>
<operation name="Object Store Client Begin Session Service">
<participant name="ObjectStoreClientBeginSession"/>
<output message="ObjectStoreClientBeginSessionTypeInputMessage">
<assign to="objectstoreclientadapter">dummyobjectstoreclientadapter</assign>
<assign to="accountname">dummyaccountname</assign>
<!-- This is plain text secret key -->
<assign to="secretkey">dummysecretkey</assign>
<!-- OR -->
<!-- To retrieve the obscured password from process data and unobscure it using the revealObscured XPath function use -->
<assign to="secretkey" from="revealObscured(secretpass)" ></assign>
<assign to="bucketname">dummybucketname</assign>
<assign to="connectiontimeout">dummyconnectiontimeout</assign>
<assign to="readtimeout">dummyreadtimeout</assign>
<assign to="." from="*"></assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientBeginSessionServiceResults" from="*"></assign>
</input>
</operation>
<operation name="Object Store Client MKDIR Service">
<participant name="ObjectStoreClientMkdir"/>
<output message="ObjectStoreClientMkdirServiceTypeInputMessage">
<assign to="session_token"
from="ObjectStoreClientBeginSessionServiceResults/session_token/text()">
</assign>
<assign to="bucketname">dummybucketname</assign>
<assign to="foldername">dummyfoldername</assign>
<assign to="." from="*"></assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientMkdirServiceResults" from="*"></assign>
</input>
</operation>
<operation name="Object Store Client PUT Service">
<participant name="ObjectStoreClientPut"/>
<output message="ObjectStoreClientPutServiceTypeInputMessage">
<assign to="session_token"
from="ObjectStoreClientBeginSessionServiceResults/session_token/text()">
</assign>
<assign to="bucketname">dummybucketname</assign>
<assign to="documentlist">dummydocumentlist</assign>
<assign to="documentid">dummydocumentid</assign>
<assign to="foldername">dummyfoldername</assign>
<assign to="remotefilename">dummyremotefilename </assign>
<assign to="sourcefilelist">dummysourcefilelist1, dummysourcefilelist2</assign>
<assign to="filepattern">dummyfilepattern</assign>
<assign to="." from="*"></assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientPutServiceResults" from="*"></assign>
</input>
</operation>
<operation name="Object Store Client Get Service">
<participant name="ObjectStoreClientGet"/>
<output message="ObjectStoreClientGetServiceTypeInputMessage">
<assign to="session_token"
from="ObjectStoreClientBeginSessionServiceResults/session_token/text()">\
</assign>
<assign to="foldername">dummyfoldername</assign>
<assign to="filepattern">dummyfilepattern</assign>
<assign to="remotefilename">dummyremotefilename</assign>
<assign to="remotefilelist">dummyremotefilelist1, dummyremotefilelist2</assign>
<assign to="."from="*"></assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientGetServiceResults" from="*"></assign>
</input>
</operation>
<operation name="Object Store Client List Service">
<participant name="ObjectStoreClientList"/>
<output message="ObjectStoreClientListServiceTypeInputMessage">
<assign to="session_token"
from="ObjectStoreClientBeginSessionServiceResults/session_token/text()">
</assign>
<assign to="bucketname">dummybucketname</assign>
<assign to="foldername">dummyfoldername</assign>
<assign to="filepattern">dummyfilepattern</assign>
<assign to="." from="*"></assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientListServiceResults" from="*"></assign>
</input>
</operation>
<operation name="Object Store Client DELETE Service">
<participant name="ObjectStoreClientDelete"/>
<output message="ObjectStoreClientDeleteServiceTypeInputMessage">
<assign to="session_token"
from="ObjectStoreClientBeginSessionServiceResults/session_token/text()">
</assign>
<assign to="bucketname">dummybucketname</assign>
<assign to="foldername">dummyfoldername</assign>
<assign to="remotefilename">dummyremotefilename</assign>
<assign to="." from="*"></assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientDeleteServiceResults" from="*"></assign>
</input>
</operation>
<operation name="Object Store Client End Session Service">
<participant name="ObjectStoreClientEndSession"/>
<output message="ObjectStoreClientEndSessionServiceTypeInputMessage">
<assign to="session_token"
from="ObjectStoreClientBeginSessionServiceResults/session_token/text()">
</assign>
<assign to="." from="*">
</assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientEndSessionServiceResults" from="*"></assign>
</input>
</operation>
</sequence>
</process>
<!-- To catch all onFault handling to log an error to ObjectStoreClientAdapter -->
<onFault>
<sequence name="End Session">
<operation name="Object Store Client End Session Service">
<participant name="ObjectStoreClientEndSession"/>
<output message="ObjectStoreClientEndSessionServiceTypeInputMessage">
<assign to="session_token"
from="ObjectStoreClientBeginSessionServiceResults/session_token/text()">
</assign>
<assign to="." from="*"></assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientEndSessionServiceOnFaultResults" from="*"></assign>
</input>
</operation>
</sequence>
</onFault>
The following business process uses the ObjectStoreClientadapter to get all files from one folder and put them in another folder on Object Store.
[[Insert Object Store Client Begin Session]]
<operation name="Object Store Client Get Service">
<participant name="ObjectStoreClientGet"/>
<output message="ObjectStoreClientGetServiceTypeInputMessage">
<assign to="bucketname">dummybucketname</assign>
<assign to="foldername">dummyfoldername</assign>
<assign to="." from="*"></assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientGetServiceResults" from="documentlist"></assign>
</input>
</operation>
<operation name="Object Store Client PUT Service">
<participant name="ObjectStoreClientPut"/>
<output message="ObjectStoreClientPutServiceTypeInputMessage">
<assign to="bucketname">dummybucketname/dummyfoldername</assign>
<assign to="." from="//ObjectStoreClientGetServiceResults/documentlist" append="true"></assign>
<assign to="." from="*"></assign>
</output>
<input message="inmsg">
<assign to="ObjectStoreClientPutServiceResults" from="*"></assign>
</input>
</operation>
[[Insert Object Store Client End Session]]