Posts tagged ·



Library not found: tibrvnativesd


I have a new installation, and when I tried to run newly deployed BW-application, the following error occurred:

java.lang.UnsatisfiedLinkError: Library not found: tibrvnativesd
at com.tibco.tibrv.Tibrv.loadNativeLibrary(
at com.tibco.tibrv.Tibrv.(
at com.tibco.sdk.m.byte(
at com.tibco.sdk.m.v(
at com.tibco.sdk.m.(
at com.tibco.sdk.a.(
at com.tibco.sdk.MApp.(
at com.tibco.share.util.TraceApp.(Unknown Source)
at com.tibco.share.util.Trace.if(Unknown Source)
at com.tibco.share.util.Trace.a(Unknown Source)
at com.tibco.share.util.Trace.(Unknown Source)
at Source)
at Source)
at Source)
at Source)
at Source)
at Source)
Caused by: java.lang.UnsatisfiedLinkError: /export/home/tibco/tibrv/8.3/lib/ bwengine: fatal: /export/home/tibco/tibrv/8.3/lib/ wrong ELF class: ELFCLASS32 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(
at java.lang.ClassLoader.loadLibrary(
at java.lang.Runtime.loadLibrary0(
at java.lang.System.loadLibrary(
at com.tibco.tibrv.Tibrv.loadNativeLibrary(
... 16 more

Thanks to support, they gave me the clue that helped:

Could you please replace the %RV_HOME%/lib with %RV_HOME%/lib/tibrvj.jar in the property tibco.env.STD_EXT_CP in bwengine.tra, redeploy your application and test if the issue gets resolved?

Long names could become a big issue

no comments

When you choose a name for TIBCO domain or BusinessWorks application, please keep in mind that long names could become a big issue. In the future, you may encounter such a problem like this (it was on Windows 2003 NTFS disk):

Can not create/access pager directory [d:\tibco\tra\domain\tibcolb-inttra-com\application\TRCAdapter\working\tibcolb-inttra-com.tibcolb-inttra-com-TRCAdapter.TRC Adapter Processes2Epar\pager.TRCAdapter-TRC_Adapter_Processes-1\TRCAdapter\CoreObjects\SecuritiesTrade\Resubmit SecuritiesTrade.process]

As you can see, domain name and application name are repeated several times in the working folder path and definitely affect the length, which can exceed the file system limit. So, choose the names in TIBCO as short as possible.

Saving the contents of TIBCO Rendezvous binary messages

1 comment

Once a situation may arise when there is need to view or save the contents of TIBCO Rendezvous Active Enterprise binary messages. If you just get them using tibrvlisten, then messages appear like this:

message={_data_=[521 opaque bytes]}

I know that TIBCO Support experts have some tools to display and save these Rendezvous opaque bytes of AE messages, but my quick solution was to create small BusinessWorks process, which will do capture and store job. There are two activities: Rendezvous Subscriber and Write File. Rendezvous Subscriber will listen appropriate subject and has only one output complex element to represent message body. Write File has “write as binary” option and Rendezvous Subscriber’s output body is input for a file binary content. There is a formula error, but in this case it can be ignored. File name will form from Process ID to save each message in a separate file.

When this process are running, binary files will appear in the specified folder. One file per message. You can open it in your favorite binary editor/viewer and have fun!

How to use AppManage utility to stop and start BW applications


AppManage utility can be used to create a BusinessWorks application using EAR file, export and import deployment configuration, deploy, undeploy, start, stop, delete an application. It can operate in batch mode. You can run AppManage utility on any machine in the TIBCO Domain. It is placed in /<tibco_home>/tra/<version>/bin/ folder. Log file will be in the domain log folder. I will show the most simple use of AppManage utility for stop and start one BW application. This can be used for scheduled restart, for example.

  • Prepare credentials file using obfuscate utility:
    > vi cred.txt

    > ./obfuscate cred.txt

    > cat cred.txt

  • Use AppManage to stop a deployed application:
    > ./AppManage -stop -app <application> -domain <domain> -cred cred.txt
  • Use AppManage to start a deployed application:
    > ./AppManage -start -app <application> -domain <domain> -cred cred.txt

<application> is “Application” in TIBCO Administrator, not “Service Instance”

The user, defined in the cred.txt file, mush have appropriate rights to start and stop an application. You can operate as “admin”, or better to define new user in TIBCO Administrator with write access rights.

How to trace BusinessWorks application

1 comment

You can set

in deployed tra file and then restart the application, run the process and until the errors appear again, then check detailed log file locates in the <install-path>\tibco\tra\domain\application\logs folder. Please keep in mind that all manual settings will be cleared after redeploy. To keep it permanent, set in bwengine.tra file in <install-path>\tibco\bw\<version>\bin folder.

Also possible to redirect the stdout and stderr output to any file. Please set in deployed cmd:
"/<install-path>/tibco/bw/<version>/bin/bwengine.exe" --run --propFile "/<install-path>/tibco/tra/domain/application/<application>.tra" > "/tmp/trace.out" 2>&1
then start this cmd from command shell.

You can also enable higher tracing to Hawk, set -tsm_tracelevel -1 in your <install-path>\tibco\tra\domain\<domain-name>\hawkagent.cfg and restart your Hawk Agent. The logs will be under <install-path>\tibco\tra\domain\<domain-name>\logs\tsm.log by default, you can define it using -tsm_traceLogFile parameter.

Connecting from TIBCO to MS SQL using Windows Authentication


Yes, it is possible. We can connect from BusinessWorks applications to MS SQL database using Windows authentication. Even more, we can run TIBCO Domain and store all data in MS SQL instance, where only Windows authentication enabled. Do it simply.

Get the latest version of Microsoft SQL Server JDBC Driver from site. Unzip it. Then:

  • copy sqljdbc.jar to <tibco_home>\tpcl\5.6\jdbc
  • copy \auth\x86\sqljdbc_auth.dll to C:\WINDOWS\SysWOW64 (or to C:\WINDOWS\System32 on 32bit system) and to <tibco_home>\tra\5.6\bin

Configure your BW-application to use appropriate driver and connection string:
URL: jdbc:sqlserver://<server_name>;

The process must be started under Windows domain user who has the database rights. To do that just start domain Hawk Agent service under this user (should be in local admins or has appropriate permissions). Then all BW-applications on this particular machine, started by TIBCO Administrator or using appmanage tool, will also run under this user and can connect to MS SQL database using Windows authentication.

If you would like to create TIBCO Domain and use MS SQL Win auth only instance to store the data, you can use the same JDBC driver and URL. All you need is just run TIBCO Administrator and Hawk Agents in the TIBCO domain under Win domain user who has the database rights.

Problem with libeay32.dll and ssleay32.dll


You may experience this problem, when can’t run TIBCO Administrator, Hawk, BW process or any other TIBCO component. In log files you can find messages related to OpenSSL libraries libeay32.dll and ssleay32.dll. The reason is that TIBCO messaging components use OpenSSL, but other applications may also use OpenSSL and have already installed these dlls in C:\WINDOWS\System32 or C:\WINDOWS\SysWOW64 depending on the platform.

When you start the application, it unsuccessful attempts to find dll files near the binary, then tries to find in the System32 folder. But dlls from other version of OpenSSL are there. Your application will use it, instead correct version from TIBCO Rendezvous bin folder for example, even you have this folder in the PATH. TIBCO product can’t call the necessary functions, gives an error and stops working.

Solution is take libeay32.dll and ssleay32.dll from TIBCO Rendezvous bin folder to the bin folders of every installed TIBCO component. Or just copy and replace to C:\WINDOWS\System32 or C:\WINDOWS\SysWOW64.

Update: these libraries are needed for SSL communication using secured daemons (RVSD or RVSRD) only, if you are not using RVSD or RVSRD then just remove the tibrvjsd.jar file from the classpath.