Wednesday, May 15, 2013

​ Configure External Databases to IBM Sterling B2B Integrator

We can add multiple
​​
external databases to IBM Sterling B2B Integrator. To add custom database need to do the following things,

1. Stop IBM Sterling B2B Integrator
2. Navigate to SI_INSTALL_DIR\properties and edit jdbc_customer.properties.in and add the below properties.
3. Run setupfiles.bat/sh (SI_INSTALL_DIR\bin\setupfiles.bat/sh)
4. Start IBM Sterling B2B Integrator

Note: SI_EXTENSION is my pool name. We can name whatever we want.

MS SQL Server Database

Need to change the test query depending on server, For MS SQL Server Database
SI_EXTENSION.testOnReserveQuery=SELECT GETDATE()

Oracle Database

Need to change the test query depending on server, For Oracle Database
SI_EXTENSION.testOnReserveQuery=SELECT * FROM DUAL

jdbc_customer.properties.in

SI_EXTENSION.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
SI_EXTENSION.url=jdbc:sqlserver://localhost:1433;databaseName=SI_EXTENSION;SelectMethod=cursor
SI_EXTENSION.user=sa
SI_EXTENSION.password=
#SI_EXTENSION.maxconn=20
SI_EXTENSION.storedProcClassName=com.sterlingcommerce.woodstock.util.frame.jdbc.SybaseStoredProcQuery
SI_EXTENSION.varDataClassName=com.sterlingcommerce.woodstock.util.frame.jdbc.MSSQLVarData
SI_EXTENSION.catalog=SI_EXTENSION
SI_EXTENSION.type=remote
SI_EXTENSION.tr

​​
ansaction=true
SI_EXTENSION.testOnReserve=true
SI_EXTENSION.testOnReserveQuery=SELECT GETDATE()
SI_EXTENSION.testOnReserveInterval=60000
SI_EXTENSION.maxRetries=100
SI_EXTENSION.blobPageSize=1024000
SI_EXTENSION.compressBlob=true
SI_EXTENSION.dbvendor=mssql
SI_EXTENSION.buffersize=500
SI_EXTENSION.maxsize=20
SI_EXTENSION.initsize=0
SI_EXTENSION.factory=com.sterlingcommerce.woodstock.util.frame.jdbc.ConnectionFactory
SI_EXTENSION.behaviour=2
SI_EXTENSION.lifespan=0
SI_EXTENSION.idletimeout=86400000
SI_EXTENSION.housekeepinginterval=3600000
SI_EXTENSION.waittime=1000
SI_EXTENSION.errorMissingTable=16945
SI_EXTENSION.systemPool=true       



How to ​Validate Connection Pool Creation
Go to Dashboard --> Operations --> System --> Troubleshooter --> Database Usage we will find connection pool.

Question

Can I use AD (Active Directory) Logins in Sterling B2B Integrator to communicate with SQL Server?

Answer


Active Directory logins cannot be used for Sterling B2B Integrator and SQL Server. The jdbc driver Sterling B2B Integrator uses does not allow using AD accounts. SQL Server accounts must be used.

http://www-01.ibm.com/support/docview.wss?uid=swg21683970

Tuesday, May 14, 2013

Installing Oracle 11g Enterprise Edition on Ubuntu 12.10



Required Software’s

VMware Player

Download and install VMware Player (Non-Commercial Software)

Ubuntu 12.10

Download and install Ubuntu 12.10 32 bit or 64 bit based on your Hardware.

XClock Problem

To setup $DISPLAY across the user try running this as root before you do "su - oracle" or other users.
$>xhost local:oracle
$>xhost local:sirishg

Oracle Installation Process

Follow the below link,
Note:
About link works for Ubuntu 32 Bit as well.

Note: Just ignored all above missing packages.





Note: Run the above commands as root user.

Post Installation Errors

Error Message while starting sqlplus
sqlplus: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory.
Reason for the Problem
libclntsh.so.11.1 was missing.
Solution
Below solution solve this problem as well.
Error message while starting Net Manager
oracle@ubuntu:~/app/oracle/product/11.2.0/dbhome_1/bin$ ./netca
UnsatisfiedLinkError exception loading native library: njni11
java.lang.UnsatisfiedLinkError: /home/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libnjni11.so: libclntsh.so.11.1: cannot open shared object file: No such file or directory
java.lang.UnsatisfiedLinkError: jniGetOracleHome
            at oracle.net.common.NetGetEnv.jniGetOracleHome(Native Method)
            at oracle.net.common.NetGetEnv.getOracleHome(Unknown Source)
            at oracle.net.ca.NetCALogger.getOracleHome(NetCALogger.java:230)
            at oracle.net.ca.NetCALogger.initOracleParameters(NetCALogger.java:215)
            at oracle.net.ca.NetCALogger.initLogger(NetCALogger.java:130)
            at oracle.net.ca.NetCA.main(NetCA.java:404)

Error: jniGetOracleHome
Oracle Net Services configuration failed.  The exit code is 1
Reason for the Problem
libclntsh.so.11.1 was missing.
Solution
Go to terminal and locate the missing file libclntsh.so.11.1 using below command,
Copy the above file to $ORACLE_HOME\lib (/home/oracle/app/oracle/product/11.2.0/dbhome_1/lib/)

Post Installation Configurations

Database Listener Configuration

If we need to configure database listener go to $ORACLE_HOME/lib and execute shell called netca

Create new Database

Exception while creating new Database

 

References

This is Important One

Solving compilation/link errors

Some issues should appear during installation.
If you have not created the symbolic links above, you will have to solve error lib//libagtsh.so: undefined reference to `nnfyboot' in make: rdbms/lib/dg4odbc] Error 1. For this, create the symbolic links and execute the commands:
export ORACLE_HOME=/opt/oracle/Oracle11gee/product/11.2.0/dbhome_1
cd $ORACLE_HOME/lib
ln -s libclient11.a libagtsh.a
$ORACLE_HOME/bin/genagtsh $ORACLE_HOME/lib/libagtsh.so 1.0


Now we will encounter many errors due to indirect library linking:
To solve error # libnnz11.so: could not read symbols: Invalid operation /sysman/lib/ins_emagent.mk, enter the command:
export ORACLE_HOME=/opt/oracle/Oracle11gee/product/11.2.0/dbhome_1
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.mk

To solve error # nsglsn.c:(.text+0xc29): undefined reference to `ons_subscriber_close' /network/lib/ins_net_server.mk, enter the command:
sed -i 's/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/network/lib/env_network.mk
To solve error # libocrutl11.so: undefined reference to `lfifcp' rdbms/lib/ins_rdbms.mk, enter the commands:
sed -i 's/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/rdbms/lib/env_rdbms.mk

You also need to execute the following commands to prevent from later errors:
sed -i 's/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/bin/genorasdksh
sed -i 's/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g' $ORACLE_HOME/srvm/lib/ins_srvm.mk

Starting up the database

Once your server have been restarted, your database may not start. To solve this issue, first check in /etc/oratab that it has the 'Y' flag, if not, set it.
sudo gedit /etc/oratab

And replace N by Y
orcl:/opt/oracle/Oracle11gee/product/11.2.0/dbhome_1:Y

Manually starting up the database

Finally, to manually start Oracle, run these commands as oracle user
dbstart $ORACLE_HOME

Manually shutting down the database


dbshut $ORACLE_HOME

Tuesday, March 19, 2013

Read and Write Primary Document in ​ IBM B2B Sterling Integrator using MESA

​Read​
 ​and Write Primary Document while implementing
​a ​
Custom Service in
​​
IBM B2B Sterling Integrator
​ using MESA Studio​
. ​

public WorkFlowContext processData(WorkFlowContext wfc)
            throws WorkFlowException {
        Document outputDocument;
        String codeListOutputXML = null;
        OutputStream outputStream;
        BufferedOutputStream bos;
        String svcName = wfc.getServiceName();
        XLogger log = new XLogger("SI_Auto_DeployImpl", svcName);
        wfc.harnessRegister();
        wfc.setBasicStatus(WorkFlowContext.SUCCESS);
        try {
            CodeListDeployer codeListDeployer = new CodeListDeployer();
            // Read the input from PrimaryDocument
             Document srcDoc = wfc.getPrimaryDocument();   
             codeListOutputXML = codeListDeployer.readCodeListExcel(srcDoc.getInputStream());
             //Write output to new PrimaryDocument
             outputDocument = wfc.newDocument();
             outputStream = outputDocument.getOutputStream();
             bos = new BufferedOutputStream(outputStream);
             bos.write(codeListOutputXML.getBytes());
             wfc.setAdvancedStatus("CodeList Created Successfully!!");
             bos.close();
             wfc.putPrimaryDocument(outputDocument);
        } catch (Exception e) {
            handleError(log, wfc, SI_Auto_DeployMessages.Global_Exception,
                    new Object[] { SI_Auto_DeployImpl.class.getName() }, e);
        } finally {
            wfc.unregisterThread();
        }
        return wfc;
    }


Friday, March 15, 2013

File Compress Service in IBM B2B Sterling Integrator

<operation name="Compress"> 
 <participant name="CompressionService"/>
 <output message="outputMessage">
 <assign to="." from="*"/>
 <assign to="compression_action">Compress</assign>
 <assign to="compressed_filename" from="concat('FileName__','.gz')"/>
 <assign to="compression_level">1</assign> <!-- 1 Cost Less CPU cycles -->
 <assign to="file_name">string(OriginalFileName)</assign>
<assign to="doc_to_compress">primary_doc</assign>
</output>
 <input message="inputMessage">
 <assign to="." from="*"/>
</input>
 </operation>

Thursday, February 28, 2013

IBM B2B Sterling Integrator (SI) and Sterling File Gateway Installation Procedure

1. Install and Configure Sterling Integrator DB. Follow the below link to create and configure database,
         http://sirishg.blogspot.com/2012/12/sterling-integrator-oracle-user-and.html

2. Update License Set.
   Need to update the License Set because while installing SI it will take the out of box license file which needs to be overriden after post installation. Below command will update the Sterling Integrator license,
         InstallDirectory/bin$ AddLicenseSet.sh
        
3. Start SI and go to Operations --> System --> Licenses and do List All and check all carefully that we have got license for all
   required SI components for instance File Gateway Core
   Note: Check under InstallDirectory/properties/licensefiles for SI and SFG License.
 
4. Shutdown Sterling Integrator and proceed for Sterling File Gateway Installation
   InstallDirectory/bin$ InstallService.sh
   Note: We will find SFG under InstallDirectory/packages/filegateway_XXX.jar
 
5. After installation start SI we will be automatically pointed to filegateway URL.

​​Note: Only important factor here is before we trigger SFG installation we need to make sure we have valid licese for SFG, Otherwise your installation will be semi completed.

Telugu Devotional Song

Wednesday, February 27, 2013

Uninstall​ IBM Sterling File Gateway (SFG) from IBM B2B Sterling Integrator (SI) Installation

Below process explains how to remove IBM Sterling File Gateway (SFG) from IBM B2B Sterling Integrator(SI) Installations. Please do not consider this as an official procedure, This is a just a WORK AROUND to remove SFG from SI.


1. Shutdown all Sterling Integrator nodes and perform below tasks on all nodes.

2. Go to installFolder/container/Applications - Remove filegateway exploded folder and filegateway.war.

3. Go to installFolder/noapp/deploy - Remove filegateway exploded folder and filegateway.war.

4. Go to installFolder/jar/ - Remove filegateway folder.

5. Go to installFolder/properties/dynamicclasspath.cfg.in - Remove entries for FileGateway-ui.jar and filegateway.jar.

6. Run setupfiles.cmd/sh

7. Run deployer.cmd/sh

8. Bring up Sterling Integrator.

Note:​ Please note that above process will not clean database and it will leave few database tables related to SFG but they don't harm any of the SI processes. ​