Transoft Component Adapters (Deployment) 3.20
Release Notice


 

Contents

Introduction

Welcome to revision 3.20 of Transoft Component Adapters (Deployment).

The Transoft Component Adapters (Deployment) - Installation & Licensing Guide can be found in the base directory of this CD-ROM, along with Microsoft's Word Viewer 97. Install Word Viewer 97.

New Features

Use BLOB types within a COBOL component

COBOL components may now make use of BLOB types. The calls CFGETBLOB and CFSETBLOB are used to get & set BLOB values - these will be included in the generated wrappers if BLOBs are in use. The default BLOB size used in the generated wrappers is 4000 bytes, but this may be altered (either alter cobgen.mac or the generated code).

Call HTTP services from a COBOL component

HTTP calls may now be made from COBOL components by using the CFHTGET and CFHTPOST calls:

      * Use HTTP GET to get results from a web service
           move "http://localhost:7563/httpecho?inputstring=Hello"
                       to w-url.
           move 1024 w-response-len.
           call "CFHTGET" using w-url w-response-code 
                          w-response-content-type 
                          w-response-len
                          w-response.
           display w-response-code w-response-content-type.
           display w-response.
 
       
      * Use HTTP POST to get results from a web service
           move "http://localhost:7563/httpecho"
                       to w-url.
           move "application/x-www-form-urlencoded"
                       to w-request-content-type.
           move "inputstring=Hello"
                       to w-request.
           move 20 to w-request-len.
           move 1024 to w-response-len.
           call "CFHTPOST" using w-url w-response-code 
                          w-request-content-type
                          w-request
                          w-request-len
                          w-response-content-type 
                          w-response-len
                          w-response.
           display w-response-code w-response-content-type.
           display w-response.

Update SDL files without regeneration C# and Java Proxies

Previously, when new fields were added to a service, C# and Java proxies would require regenerating - even if the application did not make use of the new fields. The proxies have been modified so that they will continue to work with the component broker even after the SDL has been updated.

Update Component Broker configuration without restarting

Component Broker configuration may be updated while the server is running using the cbctl binary as follows:

        C:\Program Files\Transoft\TCF\Server>cbctl updateini

The following settings may be updated:

  • Bin
  • IdleTimeout
  • KeepAliveTimeout
  • LogLevel
  • LogLocks
  • LogNetwork
  • RemoteHost
  • RemotePort
  • WorkDir

If the Log Level 1 (INFO) is in effect, changes to settings will be logged.

Update SDL files without restarting Component Broker

It is now possible to update SDL files while the Component Broker is running. However, this can only be done when all components are stopped. The command to perform the update are as follows:

        C:\Program Files\Transoft\TCF\Server>cbctl updatesdl

If the new SDL fails to parse, the changes will be rolled back and no updates will take place. It is not possible to update a context that is in use.

If users are currently connected to the Component Broker and hold references to a service that is being updated, there may be problems with that reference. The action taken by the component broker may be controlled with the UpdateActiveSvc setting. This may be set to Fail - rollback the updates, Invalidate - calls will return an error on existing handles, or Warn - no action will be taken other than logging a message.

It is recommended that a script is written to perform all the updates such as copying SDL files and components. For example, to only copy the updated components once the SDL has successfully reloaded, the following script may be used:

@echo off
xcopy /y "c:\project\sdl files\*.sdl" "c:\program files\transoft\tcf\server\UserSDLFiles"
cbctl updatesdl
rem non-zero return code indicates error in update - so don't update components
if errorlevel 1 goto end
xcopy /y "c:\project\cobol\*.cob" "c:\tca\components"
:end
echo Done

Use Asynchronous calls from Java

Asynchronous calls may now be made using the execAsync() call. The poll() call may be used to check for completion (returns true while the service is running), and the cancel() call may be used to cancel a running call.

        i = 0;
        svc.executeAsync();
        while (svc.poll()) {
               Thread.currentThread().sleep(100);
        }
        System.out.println(svc.getOutputString());
 

Specify Namespace for C# Proxies

If an argument is specified in the macro processor settings for the C# components, it will be used as the namespace for the generated proxy.

Bugs Fixed

  • Java proxies now correctly handle inout parameters
  • Windows now sets a default TCF_PROJ if none is set for command line utilities
  • Java and C# proxies modified for additional thread-safety

Language Integration

When using COBOL, the runtime will need to be linked with the TCA COBOL Application Bus Adapter library. How this is done depends on the platform and version of COBOL required.

Windows

The Windows runtimes make use of the cfacob.dll library. Make sure the TCF_PLATFORM=WIN32 environment variable is set.

  • For ACU COBOL, make sure the CODE_PREFIX environment variable contains C:\WINNT\System32 or wherever your Windows system files reside. Also, make sure that the dll-convention setting is 0 (this is the default)
  • For RM COBOL 7, you cannot use the standard CFACOB.DLL, as RM requires it's extensions to be in a different format. Instead, use the RMCOB7.DLL DLL by adding the option L=RMCOB7.DLL to the command line.

UNIX

When using COBOL under UNIX, the runtime system will need to be rebuilt or enhanced by linking in the COBOL Application Bus Adaptor library (cobcf.a), or by placing a shared object library (libcobcf.so or libcobcf.sl) version in the appropriate directory.

Re-linking the runtime

There is a UNIX shell script within the cobol subdirectory for each COBOL language type supported:

  •  
  • aculinktca.sh for ACUCOBOL.
  • mflinktca.sh for Micro Focus COBOL
  • rmlinktca.sh for Liant RM/COBOL

Run the relevant script, and follow any instructions provided.

Using shared objects

To use shared objects under UNIX, the runtime must call the library libcobcf.so or libcobcf.sl on HP/UX.

Set the environment variable LD_LIBRARY_PATH to point to the lib directory of the TCA installation (LIBPATH on AIX, SHLIB_PATH on HP/UX).

When running under HP/UX, edit the ACU .cfg file to include the line:

    SHARED-LIBRARY-EXTENSION     .sl

It may also be necessary to force the following export to load a dependency:

    export LD_PRELOAD=/usr/lib/libsec.sl

On platforms that support more than one ABI (such as SCO, which supports the OSR5 ABI and SVR5 ABIs), the shared library must match the COBOL runtime binary. Use the file command to show the details of each.

Additional Notes

Users of the SCO UnixWare client-side library should note that the client timeout feature is not supported under UnixWare and possibly other platforms that use the same binary.


 

Phone: 770-933-1965 (U.S.) or +44 (0) 1753 778000 (U.K.)
Copyright 2006 © Transoft