HP NonStop Data Transformation Engine Services Guide Abstract This manual provides information about using the HP NonStop™ Data Tranformation Engine on the NonStop server. Product Version NonStop Data Transformation Engine 6.7.
Document History Part Number Product Version Published 427646-001 NonStop Data Transformation Engine 1.0 December 2000 522435-001 NonStop Data Transformation Engine 5.0.3 November 2001 522435-002 NonStop Data Transformation Engine 6.7.1 June 2004 522435-003 NonStop Data Transformation Engine 6.7.1 October 2004 522435-004 NonStop Data Transformation Engine 6.7.
Contents About This Document.............................................................................................................. 7 Required Background .......................................................................................................................................... 8 Related Documents ............................................................................................................................................. 8 New and Changed Information.....................
Contents Using Messaging Adapter Commands ............................................................................................................... 34 General Rules for Messaging Adapter Commands ............................................................................................. 35 Messaging Adapter Transactions ....................................................................................................................... 35 Messages as a Data Source..................................
Contents Caller Mode (-M) ................................................................................................................................... 61 Message ID (-MID)................................................................................................................................ 62 Service Name (-N)................................................................................................................................. 62 Message Priority (-P)...............................
Contents AdapterRetry > MaxAttempts................................................................................................................. 91 AdapterRetry > Interval(Secs) ............................................................................................................... 91 AdapterWarnings .................................................................................................................................. 91 AdapterScope ....................................................
About This Document This document contains information specific to the NonStop server including the following topics: ♦ The Tuxedo Transformation Server ♦ The CORBA Transformation Server ♦ Messaging Adapters (BEA Tuxedo Adapter) ♦ The XML Filter ♦ Utility Adapters Usage Information ♦ Custom Adapters ♦ Advanced Adapter Topics ♦ Database Adapter Usage Information Detailed information about utility adapters as well as the Command Server that was documented in this manual in previous editions has been moved to
About This Document the execution environments (Tuxedo or CORBA). Information about the Command Server is contained in the Command Server Reference Guide. Note: This guide refers to BEA Tuxedo for consistency with the online help. However, on the NonStop server, the product is NonStop Tuxedo; BEA Tuxedo in the context of this guide actually refers to NonStop Tuxedo. The XML filter is a map that filters optional white spaces. This guide refers you to the README for information about the XML filter.
About This Document New and Changed Information This edition of the manual includes the following changes for NonStop Data Transformation Engine 6.7.1 Update 1: ♦ Configuring map caching is documented in Chapter 4 ♦ Methods invoked for map caching is explained in Chapter 6 Syntax Notation Throughout this document, the following syntax notation is used: literal Literal characters appear in boldface and should be entered exactly as they appear.
PART I – TUXEDO TRANSFORMATION SERVER PART I – TUXEDO TRANSFORMATION SERVER This part of the guide describes the Tuxedo Server. Note that the NonStop DTE version of Tuxedo is NonStop Tuxedo rather than BEA Tuxedo. Although this guide refers to BEA Tuxedo, all the information applies to NonStop Tuxedo as well.
Chapter 1 – Tuxedo Transformation Server Chapter 1 – Tuxedo Transformation Server The Tuxedo Transformation Server (mercserv) wraps the NonStop DTE mapping process with a Tuxedo service. There is one service for each map. The format of the service name is the name of the map minus the file-type extension. For example, to invoke a map named toedi.mmc, the client calls the service named TOEDI. mercserv is the executable file for the Tuxedo Transformation Server.
Chapter 1 – Tuxedo Transformation Server The Tuxedo Transformation Server may use any of the supplied adapters for communicating with databases, messaging systems, and so on, as well as interfacing with other Tuxedo services through the Tuxedo Adapter. How it Works The Tuxedo Transformation Server’s configuration file (mercserv.cfg) contains a list of maps, execution options, and the number of the output card that will contain the response message. The following figure shows a sample configuration file.
Chapter 1 – Tuxedo Transformation Server 3 List these maps in the configuration file mercserv.cfg. 4 Modify an existing ubb file to add mercserv as a server. 5 Execute tmloadcf to process this ubb file. 6 Boot up Tuxedo (tmboot). 7 Send data to a service that has the name of one of the maps created and registered in steps 2 and 3. 8 The response message will be the data returned from the output card specified in the configuration file in step 3.
Chapter 1 – Tuxedo Transformation Server Troubleshooting Trace Log Use the Trace adapter command (–T) to create a trace file that reports adapter activity information, recording the events that occur while the adapter is retrieving and sending data. The trace command produces a log file with the default name m4tux.log file in the map execution directory.
PART II – CORBA TRANSFORMATION SERVER This part describes the NonStop CORBA Transformation Server.
Chapter 2 – CORBA Transformation Server Overview Chapter 2 – CORBA Transformation Server Overview The NonStop DTE CORBA Transformation Server implements Mercator mapping processes as a Common Object Request Broker Architecture (CORBA) service running within the NonStop CORBA environment. The possible data transformations that can be performed are the set of compiled map files in the same directory as the CORBA server executable.
Chapter 2 – CORBA Transformation Server Overview VST101.vsd Figure 2 MapSettings: Setting WorkFile to FilePrefix Unique Do not use the default WorkFile option where FilePrefix is MapName. This default option does not work because it causes the different server processes to attempt to use the same workspace file. WorkMemory is recommended since it offers better performance.
Chapter 2 – CORBA Transformation Server Overview The following diagram illustrates the environment for the NonStop DTE CORBA Transformation Server and Client from a high-level view.
Chapter 3 – CORBA Interface Definition Language (IDL) Chapter 3 – CORBA Interface Definition Language (IDL) The Interface Definition for the CORBA Transformation Server is as follows: interface DTEORBServ { exception DteServException{ short nError; string sError; }; string transform( in string mapName, in string data, in short outputCardNumber ) raises(DteServException); }; The CORBA interface consists of a user-defined exception and a method, described below: DteServException This is a user-defined excep
Chapter 3 – CORBA Interface Definition Language (IDL) The method returns a string that holds the transformed data if the third argument is a valid output card number. Otherwise, the return value is an empty string. - exception The method throws a DteServException if the transformation fails. This IDL defines the interface to the NonStop DTE CORBA Transformation Server. CORBA clients that need to invoke the NonStop DTE CORBA Transformation Server must import this IDL.
Chapter 4 – Start-up and Configuration Scripts Chapter 4 – Start-up and Configuration Scripts The NonStop DTE CORBA Transformation Server can be started as a PATHWAY server class or a standalone server. Sample configuration scripts (start_dtecorba.sh and stop_dtecorba.sh) are provided to start the NonStop DTE CORBA Transformation Server in the PATHWAY environment.
Chapter 4 – Start-up and Configuration Scripts and if the following config.src file is sourced in to set ORB properties: catch {entitydelete tcp_server@ORB} entity tcp_server@ORB { tcp_server true port_number 0 host_name 172.31.40.94 PreloadMaps 5 } since the PreloadMaps value is set to 5, the NonStop DTE CORBA Transformation Server maintains the five most recently used maps in memory.
Chapter 5 – CORBA Transformation Client Chapter 5 – CORBA Transformation Client You can develop your own CORBA client to perform the transformation for your data. The CORBA clients that need to invoke DTE CORBA Transformation Server have to import the server IDL. The client has to invoke the transform(…) method on DTE CORBA Transformation Server with appropriate arguments. A sample CORBA Transformation Client (dteorbclnt) is included on the NonStop DTE CD.
Chapter 6 – Service Usage Scenarios Chapter 6 – Service Usage Scenarios There are four scenarios in which the CORBA Transformation service can be used to transform data. They are examined in this chapter. In the following diagrams, this arrow ( ) represents the code flow (invoke, request or reply) and this arrow ( ) represents the data flow (input or output). A Client Requests to Execute a Map In this scenario, the CORBA Client makes a request to the CORBA Server.
Chapter 6 – Service Usage Scenarios Client Requests to Execute a Map and Receive Output Data In this scenario, the CORBA Client makes a request to the CORBA Server. The CORBA Server executes a map, transforms the input data according to the map input settings, and returns the transformed data back to the client as a response. CORBA Client CORBA Server Map The CORBA request contains the name of the compiled map file.
Chapter 6 – Service Usage Scenarios Client Specifies Input Data, No Output Data is Sent Back In this scenario, the CORBA Client makes a request to the CORBA Server and sends its own data along with the request. The CORBA Server executes a map and transforms the data but does not send the output data back to the CORBA client. CORBA Client CORBA Transformation Server Map The CORBA client request contains the map name and the data to be transformed. The map’s input card 1 shall be overridden.
Chapter 6 – Service Usage Scenarios Client Specifies the Input Data, Output Data is Sent Back In this scenario, the CORBA Client makes a request to the CORBA Server along with its own input data. The CORBA Server executes a map, transforms the input data, and returns the transformed data back to the client as a response. CORBA Client CORBA Server Map The CORBA client request contains the map name and the data to be transformed. The map’s input card 1 shall be overridden.
Chapter 6 – Service Usage Scenarios The command string that dteorbserv forms and assigns to the lpszDataToApp field of the EXITPARM structure is ContactToLabel.nsk -OE1 -IE1 '' where is the actual input data string. Methods Invoked by NonStop DTE CORBA Transformation Server for Map Caching When map caching is enabled, the NonStop DTE CORBA Transformation server invokes three additional functions apart from RunMap.
PART III – XML FILTER PART III – XML FILTER This part refers you to the location of the README file that contains information about the XML filter on the NonStop Server. For more information about the XML data adapter, see the NonStop Data Transformation Engine XML Data Adapter Reference Guide.
Chapter 7 – XML Filter Chapter 7 – XML Filter The NonStop DTE supports an XML filter. The XML filter is a map that filters optional white spaces. For information and an example of this filter, see the README file located at: /usr/tandem/nsdte/examples/xmlfilter. For more information about XML, see the NonStop Data Transformation Engine XML Data Adapter Reference Guide.
PART IV – MESSAGING ADAPTERS PART IV – MESSAGING ADAPTERS This part provides an overview of messaging adapters in general and information about the NonStop Tuxedo messaging adapter. Information about the IBM MQSeries Messaging adapter is contained in the NonStop Data Transformation Engine IBM WebSphere MQ Adapter Reference Guide.
Chapter 8 – Using Messaging Adapters Chapter 8 – Using Messaging Adapters Messaging adapters are a collection of middleware drivers used in conjunction with the Design Studio to provide a means of specifying data sources and targets. Each adapter comes with a set of commands that can customize its operation. This chapter provides an overview of messaging adapters in general.. Message Flow Maps control the flow of messages between messaging applications.
Chapter 8 – Using Messaging Adapters Many to One Messaging Messages can flow from many data source messages to a single data target message through a map. Many to Many Messaging Messages can flow from many data source messages to many data target messages through a map.
Chapter 8 – Using Messaging Adapters Sequencing Message Flow Between Applications Messages can flow from between applications through maps. In the illustration below the numbers refer to the order of the messaging in the overall sequence. Integration with Non-MessageQ Environments Other adapters (for example, database adapters) can be used to allow integration with other environments. This is of particular interest with interfacing with external messaging environments, for example, EDI.
Chapter 8 – Using Messaging Adapters General Rules for Messaging Adapter Commands The general rules that apply when specifying adapter commands are: ♦ Each command must begin with a hyphen. ♦ Command characters can be upper case, lower case, or mixed case. ♦ Command strings are parsed in left to right order. ♦ The order of commands is not important. ♦ Command files can contain multiple lines. ♦ Space characters: Spaces preceding the first command are ignored.
Chapter 8 – Using Messaging Adapters Within a map, some input cards may be in burst mode while others are in integral mode, meaning that the cards in integral mode are executed once only. Burst Mode Burst mode allows many data inputs to transfer at once, for example in batches. Burst mode is valuable if you are dealing with large amounts of messages where it would not be feasible to pass all of the messages in one retrieval due to memory limitations.
Chapter 8 – Using Messaging Adapters ♦ Map – the transaction is committed or rolled back when the map completes. The success of the map determines whether the transaction is committed or rolled back. This is the default behavior. ♦ Burst – the transaction is committed or rolled back when each burst completes. The success of the burst determines whether the transaction is committed or rolled back. If the map only has one burst, this is equivalent to map scope.
Chapter 8 – Using Messaging Adapters MQSeries (server) MQS -IMMQScard_num -OMMQScard_num BEA Tuxedo TUX -IMTUXcard_num -OMTUXcard_num BEA Tuxedo (MT) Multi-Threaded TUXMT -IMTUXMTcard_num -OMTUXMTcard_num When using an adapter alias in conjunction with the execution command, the adapter commands can be issued on the command line or in a command file.
Chapter 9 – BEA TUXEDO Messaging Adapters The messaging adapters for BEA Tuxedo are used to perform message transformation in the Tuxedo environment, including the translation of data between different formats. The messaging adapters for BEA Tuxedo also control the flow of messages between Tuxedo applications. For interfacing with external messaging environments, other adapters (for example, database adapters and application adapters) are used.
Chapter 9 – BEA TUXEDO Messaging Adapters Tuxedo Service Send and Receive Buffer Types A Tuxedo service is a two-way message system. When calling a Tuxedo service as a source or a target, the send and receive buffer type definitions are described in the following sections: For Data Sources The Buffer adapter command (-B) specifies the buffer type, size, and binary data of the data when calling the Tuxedo service for the data source.
Chapter 9 – BEA TUXEDO Messaging Adapters BEA Tuxedo Messaging Adapter Examples The example files provided in the /usr/tandem/nsdte/examples/Tuxedo/SlashQ folder demonstrate the use of the BEA Tuxedo messaging adapter. The readme.txt file in this folder provides instructions on how to use these example files. Using the Adapter for Tuxedo Service The Tuxedo service is a two-way messaging system running on a Tuxedo server.
Chapter 9 – BEA TUXEDO Messaging Adapters Using the Adapter Commands The BEA Tuxedo messaging adapters support Tuxedo services or Tuxedo /Q for data sources and data targets, or both. The adapter commands enable you to specify the caller mode, the Tuxedo username and password, the name of the Tuxedo client, the data format, and more.
Chapter 9 – BEA TUXEDO Messaging Adapters When to Select Tuxedo (MT) When the messaging adapter for Tuxedo has been installed in an environment running the BEA Tuxedo with Client Threads Supplement messaging system software, you select to use the Tuxedo (MT) adapter as follows: ♦ In the Map Designer. For the AdapterSource setting in an Input Card dialog or the AdapterTarget setting in an Output Card dialog, select the value Tuxedo (MT). ♦ In Map Rules and Component Rules.
Chapter 9 – BEA TUXEDO Messaging Adapters From the Map Designer The BEA Tuxedo messaging adapters can be used as a source on an input map card, or as a data target on an output map card. For example, for the AdapterSource setting for an Input Card or the AdapterTarget setting for an Output Card dialog, select the value Tuxedo or Tuxedo (MT).
Chapter 9 – BEA TUXEDO Messaging Adapters In Map Rules and Component Rules You can specify messaging adapter commands when using the GET and PUT functions when defining map rules in the Map Designer or in functions in component rules in the Type Designer. The default adapter scope when using both GET and PUT functions is burst. GET and PUT functions have the following default behaviors: Result GET Function PUT Function Successful Completion All source messages on the source queue are deleted.
Chapter 9 – BEA TUXEDO Messaging Adapters From the Integration Flow Designer Using the Integration Flow Designer, the execution settings for a map (Command Server) can specify the adapter settings for the BEA Tuxedo adapter (either Tuxedo or Tuxedo (MT) as appropriate) as a source or target. For example, to override the setting in an input card or to specify the BEA Tuxedo messaging adapter as a source, access the execution settings for a map. For the AdapterSource setting, select the value Tuxedo.
Chapter 9 – BEA TUXEDO Messaging Adapters On the Command Line Specify the BEA Tuxedo adapter commands using an execution command string on the command line or create a command file that contains adapter commands that dictate the desired execution settings. For information about all the options that you can use with the execution commands for messaging adapters or creating a command file, see the Execution Commands Reference Guide.
Chapter 9 – BEA TUXEDO Messaging Adapters BEA Tuxedo Type Trees The type tree simpapp2.mtt is provided in the Examples\Open Design Pack\Tuxedo\TransformationServer_Service folder. The Address field is part of a partitioned group that contains all of the selected fields from the FML file. The type tree contains the field names as initiators, not the numeric field IDs.
Chapter 9 – BEA TUXEDO Messaging Adapters BEA Tuxedo AdapterSource Settings Use the Map Designer AdapterSource settings to configure options for input map cards that use the BEA Tuxedo or BEA Tuxedo (MT) messaging adapters. AdapterSource Use the AdapterSource setting to select the data source. For the AdapterSource setting, select the value Tuxedo or BEA Tuxedo (MT) to use the BEA Tuxedo messaging adapters.
Chapter 9 – BEA TUXEDO Messaging Adapters AdapterSource > OnFailure Use the OnFailure setting with adapter sources to select the rollback or commit behavior if the map does not complete successfully. The default value is Rollback. Value Description Rollback If the map does not complete successfully, the Tuxedo transaction is rolled back if running as a Tuxedo client. Commit The adapter behaves as if the map was successful, and the Tuxedo transaction is committed if running as a Tuxedo client.
Chapter 9 – BEA TUXEDO Messaging Adapters AdapterSource > AdapterScope Use the AdapterScope setting to specify when to check for success (OnSuccess) or failure (OnFailure) of a map, card, or burst in order to perform the rollback and retry options. The default value is Map. Value Description Map Check for success or failure at the completion of each map. If the map completes successfully, use the OnSuccess setting. If the map fails, use the OnFailure setting.
Chapter 9 – BEA TUXEDO Messaging Adapters BEA Tuxedo AdapterTarget Settings Use the Map Designer AdapterTarget settings to configure options for output map cards that use the BEA Tuxedo or BEA Tuxedo (MT) messaging adapters. AdapterTarget Use the AdapterTarget setting to select the data target. Select Tuxedo or Tuxedo (MT) to use the BEA Tuxedo messaging adapters. AdapterTarget > TargetAdapterCommand Use the TargetAdapterCommand setting to enter adapter commands.
Chapter 9 – BEA TUXEDO Messaging Adapters AdapterTarget > OnFailure Use the OnFailure setting with adapter targets to select the rollback (restore a previous version of the message) or commit behavior if the map does not complete successfully. The default value is Rollback. Value Description Rollback If the map does not complete successfully, the target is not stored.
Chapter 9 – BEA TUXEDO Messaging Adapters BEA Tuxedo Messaging Adapter Commands The commands for the BEA Tuxedo messaging adapters are in two categories: ♦ Tuxedo service adapter commands ♦ Tuxedo /Q adapter commands BEA Tuxedo Service Adapter Commands The following table lists valid commands for the BEA Tuxedo messaging adapter when being used to access a Tuxedo service, the command syntax, and whether the command is supported () for use with data sources or with data targets: Tuxedo Service Command Nam
Chapter 9 – BEA TUXEDO Messaging Adapters BEA Tuxedo /Q Adapter Commands The following table lists valid commands for the BEA Tuxedo messaging adapter when being used to access a Tuxedo /Q, the adapter command syntax, and whether the command is supported () for use with data sources or with data targets: Tuxedo /Q Command Name Syntax Source Target Application Password -AP password √ √ Correlation ID -CID correlation_ID √ √ Client Name -CN client_name √ √ Data Format -DF {F|FV|S|C|V} √ √
Chapter 9 – BEA TUXEDO Messaging Adapters Tuxedo /Q Command Name Syntax View Name -V view_name Source Target √ √ Application Password (-AP) Use the Application Password adapter command (-AP) to specify an application-wide password when the client connects to the Tuxedo messaging system. This is a BEA Tuxedo security mechanism and is required when the Tuxedo security level is configured to APP_PW.
Chapter 9 – BEA TUXEDO Messaging Adapters Option Description binary_data Up to 260 alphanumeric characters. No delimiters are required, the size value defines the character count of the binary data. Spaces are allowed. Within a map, the command line of an adapter is limited to 260 characters and this limitation applies to the number of bytes passed to the adapter.
Chapter 9 – BEA TUXEDO Messaging Adapters Note The Correlation ID adapter command (-CID) is only valid when accessing a Tuxedo /Q. Client Name (-CN) Use the Client Name command (-CN) to specify the Tuxedo client machine name for data sources and data targets. -CN client_name Option Description client_name The Tuxedo client machine name.
Chapter 9 – BEA TUXEDO Messaging Adapters Dequeue Time (-DT) Use the Dequeue Time adapter command (-DT) for data targets to specify the dequeue time of the message in seconds. The dequeue time is the time after which the message becomes available for dequeuing. -DT {time|+time} Option Description time Dequeue time of the message in seconds. +time Dequeue time of the message in seconds relative to the current time.
Chapter 9 – BEA TUXEDO Messaging Adapters Failure Queue Name (-FQ) The Failure Queue Name adapter command (-FQ) enables you to specify the Tuxedo /Q failure queue name associated with the message. This failure queue may only be specified for data targets. -FQ failure_queue_name The Failure Queue Name adapter command (-FQ) specifies where error messages generated as a result of processing the original message should be enqueued.
Chapter 9 – BEA TUXEDO Messaging Adapters wait_time_in_sec The number of seconds that the adapter waits for a message. For example, to specify the wait time of 45 seconds, the syntax would be: -LSN 45 Map execution is suspended until the message is received or until the time specified lapses. In this case, the message source not available is returned.
Chapter 9 – BEA TUXEDO Messaging Adapters Message ID (-MID) Use the Message ID adapter command (-MID) to specify a particular message ID for a data source on a Tuxedo /Q. A message ID can be up to 32 bytes long and may contain spaces. -MID message_ID Option Description message_ID The message ID value can be 1 to 32 alphanumeric characters specified as a single string that contains no spaces or as multiple strings enclosed in double open (“) and double closed (”) quotes with spaces.
Chapter 9 – BEA TUXEDO Messaging Adapters Queue Name (-QN) Use the Queue Name adapter command (-QN) to specify the name of the QNAME when accessing a Tuxedo /Q for data sources and for data targets. -QN QNAME_name Option Description QNAME_name Name of the QNAME on a Tuxedo /Q. Note The Queue Name adapter command (-QN) is only valid when calling a Tuxedo /Q.
Chapter 9 – BEA TUXEDO Messaging Adapters Quantity (-QTY) Use the Quantity adapter command (-QTY) to specify the number of messages to retrieve from the source queue, or the number of times to call a Tuxedo service. If the Quantity adapter command (-QTY) is not specified, the default value is 1. -QTY {value|S} Option Description S Returns all messages on the queue. value A positive integer representing the number of concurrent multiple messages to be retrieved.
Chapter 9 – BEA TUXEDO Messaging Adapters Trace (-T) Use the Trace adapter command (-T) to produce a log file with the default name the m4tux.log in the map execution directory. The Trace adapter command (-T) is used with data sources or data targets to enable adapter tracing. -T Optionally, you can specify a directory location and a name (full path) for the trace file to be created.
Chapter 9 – BEA TUXEDO Messaging Adapters It is essential to choose the appropriate values for the Listen adapter command (-LSN) and the Transaction Timeout adapter command (-TT) to achieve the desired transaction results. See the Transaction Timeouts and Listen Wait Periods section for more information. User Name (-UN) Use the User Name adapter command (-UN) to specify the name of the Tuxedo user to be used on the connection of the adapter to the Tuxedo system.
Chapter 9 – BEA TUXEDO Messaging Adapters View Name (-V) Use the View Name adapter command (-V) to specify the name of the view of the data. When used for data sources or data targets, the View Name adapter command (-V) specifies the name of the view of the data. -V view_name Note The View Name adapter command (-V) is required if the Data Format adapter command specifies the data format as View (-DF FV).
Chapter 9 – BEA TUXEDO Messaging Adapters Syntax Summary of BEA Tuxedo Service Adapter Commands The syntax of the BEA Tuxedo Service messaging adapter commands used with data sources is: [-AP password] [-B {F|S|C}[,size,binary_data]|FV,field_name[,size,binary_data] |V,view_name[,size,binary_data] [-CN client_name] [-DF {F|FV|S|C}|V,view_name] [-FN field_name] [-M {S|C|T}] [-N service_name] [-QTY {value|S}] [-T [full_path]] [-TT timeout_in_sec] [-UN user_name] [-UP user_password] [-V view_name] The syntax o
Chapter 9 – BEA TUXEDO Messaging Adapters Syntax Summary of BEA Tuxedo /Q Adapter Commands The syntax of the BEA Tuxedo /Q messaging adapter commands used with data sources is: [-AP password] [-CID correlation_ID] [-CN client_name] [-DF {F|FV|S|C}|V,view_name] [-FN field_name] [-HDR] [-LSN {0|wait_time_in_sec}] [-M {S|C|T}] [-MID message_ID] [-QN QNAME_name] [-QS QSPACE_name] [-QTY {value|S}] [-T [full_path]] [-TT timeout_in_sec] [-UN user_name] [-UP user_password] [-V view_name] The syntax of the BEA Tuxe
Chapter 9 – BEA TUXEDO Messaging Adapters Transactional Behavior The BEA Tuxedo messaging adapter transactional behavior is defined by the following rules: Tuxedo Client or Server Transactional Behavior Tuxedo Client A Tuxedo client is specified when the adapter is executed from within a Tuxedo client and the Caller Mode adapter command specifies a caller mode of client (-M C). The first map card that that references the adapter starts a transaction.
Chapter 9 – BEA TUXEDO Messaging Adapters Tuxedo (MT) Example #1 A map has three input cards with the AdapterSource setting of Tuxedo (MT) and two output cards with the AdapterTarget setting of Tuxedo (MT). Map Designer Card Settings The following card settings are defined in the Map Designer.
Chapter 9 – BEA TUXEDO Messaging Adapters Tuxedo (MT) Example #2 A map has six input cards with the AdapterSource setting of Tuxedo (MT) and two output cards with the AdapterTarget setting of Tuxedo (MT).
Chapter 9 – BEA TUXEDO Messaging Adapters Tuxedo Transaction Logic In the Map Designer, when the AdapterSource and AdapterTarget settings are Tuxedo, each input or output card is executed in the currently active Tuxedo transaction. Different map cards cannot have separate transactions because only a single transaction can be active at the same time.
Chapter 9 – BEA TUXEDO Messaging Adapters Output #1 –TT 100 Results The execution of these map cards occur in the same transaction. The transaction timeout is equal to the transaction timeout specified with the SourceAdapterCommand on the first card (Input #1), which is 100 seconds. Tuxedo Example #2 A map has two input cards with the AdapterSource setting of Tuxedo and one output card with the AdapterTarget setting of Tuxedo.
Chapter 9 – BEA TUXEDO Messaging Adapters Tuxedo Example #3 A map has two input cards with the AdapterSource setting of Tuxedo and one output card with the AdapterTarget setting of Tuxedo. Map Designer Card Settings The following card settings are defined in the Map Designer.
Chapter 9 – BEA TUXEDO Messaging Adapters Tuxedo /Q Header Control Information Control information is used to return /Q message attributes for data sources or to specify /Q message attributes for data targets. For Data Targets For data targets calling Tuxedo /Q, the control information can be used to specify the data format, service name and /Q message attributes.
Chapter 9 – BEA TUXEDO Messaging Adapters Control Element Tuxedo Service Tuxedo /Q Source Target Control Element When Present Description Service Always The name of the Tuxedo service to forward to. If the service name is not specified, then the results are returned back to the service requester. Format Always Specifies the desired format of the output buffer.
Chapter 9 – BEA TUXEDO Messaging Adapters Header Control Information Format The format of this control information is contained within an XML tag as follows: …. … … … ... ... ... ... ... ... ... A type tree is provided to represent this structure.
Part V – UTILITY ADAPTERS Part V – UTILITY ADAPTERS This part provides general information about using utility adapters.
Chapter 10 – Using Utility Adapters Chapter 10 – Using Utility Adapters Utility adapters are a collection of middleware programs used with the Design Studio to retrieve and route data. Each adapter includes commands you can use to customize its operation. System Requirements It is assumed that a Command Server has already been installed on the computer where the utility adapters are to be installed for run-time purposes.
Chapter 10 – Using Utility Adapters General Rules for Adapter Commands ♦ On the command line, append execution commands -IA and -OA with the application alias and card number (for example, -IABAT1 or –OABAT1) for the Batch File adapter. Also see the section On the Command Line Using Adapter Aliases and Execution Commands on page 82. ♦ Each command must begin with a hyphen. ♦ Commands can be upper, lower, or mixed case. ♦ Command strings are parsed in left to right order.
Chapter 10 – Using Utility Adapters From the Map Designer Using the Map Designer, either select an adapter for a source to retrieve files and data or a target to transfer files and data. For example, in the Edit Input Card dialog box: 9 Expand the InputData and the AdapterSource settings. 10 From the Value drop-down menu for AdapterSource, select FTP. 11 For the SourceAdapterCommand, enter the FTP URL adapter command (-URL), the file to transfer, and other adapter commands as needed. 12 Click OK.
Chapter 10 – Using Utility Adapters -IA[alias]card_num -OA[alias]card_num where -IA is the Input Source Override execution command and -OA is the Output Target Override execution command, alias is the adapter alias, and card_num is the number of the map card. The following table shows each adapter alias and its execution commands.
Chapter 11 – AdapterSource and AdapterTarget Settings Chapter 11 – AdapterSource and AdapterTarget Settings Each utility adapter has AdapterSource and AdapterTarget settings to customize how the adapter functions when your map executes. These settings are available through the input and output cards in the Map Designer or from the Execution Settings you define in the Integration Flow Designer. Most settings are similar for each adapter; this chapter notes where the settings differ for each adapter.
Chapter 11 – AdapterSource and AdapterTarget Settings AdapterSource Select the adapter from the drop-down list. The default value of the AdapterSource setting is File. SourceAdapterCommand Enter adapter commands by using the SourceAdapterCommand setting. See the Adapter Command list in each adapter chapter for the adapter command syntax. OnSuccess The OnSuccess setting enables you to keep source files on or delete source files from the server where the files originate.
Chapter 11 – AdapterSource and AdapterTarget Settings AdapterRetry Use the AdapterRetry settings Switch, MaxAttempts, and Interval(Secs) to determine how to respond to an interrupted adapter command process. If errors occur and retry is specified (Switch is set to ON), the process is retried at the specified interval (using Interval(Secs)) up to as many times as requested (using MaxAttempts).
Chapter 11 – AdapterSource and AdapterTarget Settings AdapterRetry > Interval(Secs) Use the Interval(Secs) setting to specify the number of seconds to wait before attempting AdapterRetry again. The default value is 0. Value Description n Integer representing the number of seconds to wait before attempting AdapterRetry again. Valid entries are integers 0 to 9999. AdapterWarnings Use the AdapterWarnings setting to choose to fail on or ignore adapter warning conditions for the specific map card.
Chapter 11 – AdapterSource and AdapterTarget Settings AdapterScope ♦ Use the AdapterScope setting to specify: 1) when to check for success (OnSuccess) or failure (OnFailure) of a map, card, or burst operation and 2) which setting operation to run (according to the OnSuccess or OnFailure settings). The default value is Map. HTTP adapters do not include the Burst value. Value Description Map Check for success or failure at the completion of each map. If the map is successful, use the OnSuccess setting.
Chapter 11 – AdapterSource and AdapterTarget Settings AdapterTarget Select the adapter from the drop-down list. The default value of the AdapterTarget setting is File. TargetAdapterCommand Enter adapter commands by using the TargetAdapterCommand setting. See the Adapter Command list in each adapter chapter for the adapter command syntax. OnSuccess The OnSuccess setting is used with adapter targets to prevent a file from being created or process from executing unnecessarily. The default value is Create.
Chapter 11 – AdapterSource and AdapterTarget Settings OnFailure The OnFailure setting supports rollback if the mapping does not complete successfully. The default value is Rollback. Value Description Rollback If the mapping does not complete successfully, target message or file is not stored or process does not execute. Commit The adapter behaves as if the map was successful and takes the action specified by the OnSuccess setting.
Chapter 11 – AdapterSource and AdapterTarget Settings AdapterRetry > MaxAttempts Use the MaxAttempts setting to specify the maximum number of times that AdapterRetry is attempted. The default value is 0. Value Description n Integer representing the maximum number of times that AdapterRetry will be attempted. Valid entries are integers 0 to 9999. AdapterRetry > Interval(Secs) Use the Interval(Secs) setting to specify the number of seconds to wait before attempting AdapterRetry again.
Chapter 11 – AdapterSource and AdapterTarget Settings AdapterScope ♦ Use the AdapterScope setting to specify: 1) when to check for success (OnSuccess) or failure (OnFailure) of a map, card, or burst operation and 2) which setting operation to run (according to the OnSuccess or OnFailure settings). The default value is Map. The HTTP adapter does not include the Burst value. Value Description Map Check for success or failure at the completion of each map.
PART VI – CUSTOM ADAPTERS PART VI – CUSTOM ADAPTERS This part describes how to use custom adapters.
Chapter 12 – Introduction to Custom Adapters Chapter 12 – Introduction to Custom Adapters Mercator Command Server adapters provide a way to specify and manipulate data sources and targets. Each adapter is accompanied by a set of adapter commands that can be used to customize its operation. Adapters for Mercator Command Server are normally written as separate shared libraries (or DLLs on Windows NT).
Chapter 13 – Writing the Adapter Chapter 13 – Writing the Adapter Sample User-Written Adapter A sample adapter, “useradapter” is included with the NonStop DTE Command Server. Also included is the source code for the adapter, the makefile, and a sample ini file (mercadpt.ini). The sample adapter includes the following files: useradapter.c The adapter. useradapter.mak Makefile for the adapter. mercadpt.ini Description file for the adapter. The sample adapter “useradapter” is a simple file adapter.
PART VII – ADVANCED ADAPTER TOPICS PART VII – ADVANCED ADAPTER TOPICS 96
Chapter 14 – Resource Manager Component of Mercator Command Server Chapter 14 – Resource Manager Component of Mercator Command Server The Resource Manager component of Mercator Command Server manages the execution of the adapter since an awareness of current map execution status is required.
Chapter 15 – Adapter Functions Chapter 15 – Adapter Functions The following functions may be provided by each adapter and defined in the mercadpt.ini file. Mercator Command Server reads the ini file and registers the parameters described therein. Note that some of the functions are mandatory and others are optional.
Chapter 15 – Adapter Functions Get Used to get data from a resource in an input card or GET function. Note that this same function is called by the adapter to cleanup, or complete, the operation. Also note this may be called multiple times in burst mode, and that the sequence of get and cleanup calls depends on the scope settings. Put Used to send data to a resource in an output card or PUT function. Note that this same function is called by the adapter to cleanup, or complete, the operation.
Chapter 16 – Exit Parameters (EXITPARAM structure) Chapter 16 – Exit Parameters (EXITPARAM structure) The parameter to all of the functions listed above is a single structure called ‘EXITPARAM.’ The Mercator Command Server allocates and frees the EXITPARAM structure. The adapter specified for a data source or target is not responsible for freeing the memory allocated for this structure.
Chapter 16 – Exit Parameters (EXITPARAM structure) ♦ wCardNum The number of the card ♦ wCleanupAction The action to be taken on a successful completion of the work defined by the scope. Values for sources (keep options) are: ADPT_KEEP_ALWAYS ADPT_KEEP_NEVER ADPT_KEEP_ONCONTENT Values for targets (create options) are: ADPT_C_F_ALWAYS ADPT_C_F_NEVER (files only) ADPT_C_F_ONCONTENT ADPT_C_F_APPEND (files only) ADPT_C_F_UPDATE (files only) ♦ wScope The scope of the transaction.
Chapter 17 – Calling Interface for Functions Chapter 17 – Calling Interface for Functions This section describes in detail the calling interface for each of the functions described above. In all calls, the parameter LPEXITPARAM is the only parameter (or NULL). For each function, only the fields in the EXITPARAM structure that are useful to that function are described. Any others are undefined and should not be used or referenced.
Chapter 17 – Calling Interface for Functions LpAdaptParms LpWildcard DwWildcardSize LpszMapDirectory WcardNum WcleanupAction Wscope UunitSize Bburst BfromRule Bsource Used as output, contains the adapter specific parameter block of the “parsed” command Used as input, contains the wildcard data to be substituted in (see ‘Wildcard Substitutions’) Used as input, contains the size of the wildcard Used as input, the full path to the directory of the MMC file Used as input, the card number (offset from 0?) Used
Chapter 17 – Calling Interface for Functions SzErrMsg LpAdaptParms LpContext LpszMapDirectory WCardNum WCleanupAction WScope UUnitSize BBurst BFromRule BSource LpfnMS LpMS DwRecords Used as output, contains the string message based on nReturn.
Chapter 17 – Calling Interface for Functions The adapter can pass its data back to the Mercator Command Server either in a memory buffer or in a file. If a memory buffer is used, the adapter is responsible for allocating the memory for the data. Note that the adapter must not free the memory allocated for the data; the server frees this memory.
Chapter 17 – Calling Interface for Functions The adapter should not attempt to free the memory passed in lpDataToApp. It will be freed by the Mercator Command Server after the cleanup call. The Mercator Command Server assigns the address of the mapped data to lpDataToApp and its length to dwToLen. Then calls the adapter “put” function. When the library function is completed, it should assign a return code value to nReturn and an error description to szErrMsg, which will be reported in the Execution Log.
Chapter 17 – Calling Interface for Functions The function has the prototype: void CompareConnections ( EXITPARAM *lpep ); where: DwSize Lpv bCleanup nReturn lpAdaptParms The size of EXITPARAM to assure correct compatibility. Used as input, contains the adapter specific parameter block of the new connection Used as input, non-zero (TRUE) means that the connection corresponding the adapter’s parameters passed in lpAdaptParms is currently being used by this map.
Chapter 17 – Calling Interface for Functions where: DwSize Nreturn SzErrMsg LpInternal LpAdaptParms Bburst The size of EXITPARAM to assure correct compatibility. Used as output, contains the return code. Used as output, contains the string message based on nReturn. Not currently used. Used as input, contains the adapter specific parameter block to be freed. Used as input, TRUE if the card mode is burst.
Chapter 18 – Linking the Custom Adapter Into the Execution Environment Chapter 18 – Linking the Custom Adapter Into the Execution Environment This chapter describes how to link your custom adapter into the Tuxedo or CORBA servers. Adding User adapters to the NonStop DTE Tuxedo Transformation Server To add a new user adapter to the NonStop DTE Tuxedo Transformation Server, you must change three files and then rebuild the Tuxedo Server.
Chapter 18 – Linking the Custom Adapter Into the Execution Environment To rebuild the CORBA Server (dteorbserv) to add or subtract user written adapters perform the following steps (installdir is the home directory where you have installed NSDTE. The default is /usr/tandem/nsdte): 1. Modify the file dteorbserv.mak in /installdir/src as follows: a. If you want to remove the sample adapter (useradapter), comment the following line: USER_ADAPTERSD = libuseradapter.a to: #USER_ADAPTERSD = libuseradapter.a d.
Chapter 19 – Advanced Topics for Mercator Command Server Adapters Chapter 19 – Advanced Topics for Mercator Command Server Adapters The following is a summary of the functionality that may be supported by a Mercator Command Server adapter. This section was written with messaging adapters in mind, but most of the points are also relevant to other types of adapter. Summary of Functionality 1. 2. 3. 4. 5. 6. 7. 8. 9.
Chapter 19 – Advanced Topics for Mercator Command Server Adapters is the maximum number of messages that the adapter will return across all bursts. If not specified it defaults to 1. –QTY S means return as many messages as exist on the queue. -LSN is the maximum time the adapter will wait to get messages per burst. If not specified it defaults to infinity. -LSN should be the time that the adapter waits per burst.
Chapter 19 – Advanced Topics for Mercator Command Server Adapters Cleanup Calls An application used as a map source or target can be implemented to provide rollback capability, as specified with the OnFailure adapter setting. It is the responsibility of the adapter developer to add the processing necessary to implement the rollback. However, the EXITPARAM structure has been designed to provide the information for passing to and/or from the application the data necessary to perform this cleanup.
Chapter 19 – Advanced Topics for Mercator Command Server Adapters quantity parameter (passed in uUnitSize) which must be observed. Since handles and other context information can be maintained in the adapter parameter structures which are passed to the adapter on each call, the adapter does not need to maintain any additional state information. The following is the sequence of calls that will be made to a source adapter which is in burst mode.
Chapter 20 – Adapter Return Codes Chapter 20 – Adapter Return Codes Adapter return codes should be one of the following: ♦ 0 Success ♦ Negative Error ♦ Positive Warning Errors should be returned when some severe problem has occurred (such as invalid command, inability to connect to resource, error returned from the resource’s API). Warnings should be returned when there was no failure condition in the code but something occurred that might be undesirable.
Chapter 21 – Adding the Adapter to Mercator Command Server Chapter 21 – Adding the Adapter to Mercator Command Server In order to add your new adapter to Mercator Command Server, you must change 3 files and then rebuild Mercator Command Server. The files you must change are described below. Similar changes have already been made to these files to add the sample adapter “useradapter”. These can be used as an example of how you must make the changes for your new adapter.
Chapter 21 – Adding the Adapter to Mercator Command Server ENTRY_X( ENTRY_X( ENTRY_X( ENTRY_X( ENTRY_X( #endif UA_Listen ) UA_ValidateProperties ) UA_ValidateConnection ) UA_CompareConnection ) UA_OnNotify ) /* define the entry points for sample adapter */ vtable_t vtable_user[] = { #ifdef HAVE_USER_ADAPTERS ENTRY( useradapter_config ), ENTRY( UA_CompareWatches ), ENTRY( UA_CompareResources ), ENTRY( UA_Get ), ENTRY( UA_Put ), ENTRY( UA_BeginTransaction ), ENTRY( UA_EndTransaction ), ENTRY( UA_Listen ), E
Chapter 21 – Adding the Adapter to Mercator Command Server Of course, they may NOT be the same name as other external symbols defined in the Mercator Command Server executable. Issue the command “nm Mercator” if you wish to see all of the symbols currently defined. It may be easier however to ensure that all of your entry points begin with some special prefix in order to prevent duplicate symbols. A successful link is impossible without having unique symbol names.
Chapter 21 – Adding the Adapter to Mercator Command Server RESMGRD RESMGR = = libmercrmgr.a -l mercrmgr # optimized version #CDEBUG = -O -DNDEBUG # debug version CDEBUG = -g -Winspect -Woptimize=0 CFLAGS = $(CDEBUG) -DTANDEM_OSS -D_XOPEN_SOURCE_EXTENDED -I . $(MERCVER) $(TANDEM_OSS_FLAGS) $(TANDEM_OSS_FLAGS1) $(TANDEM_OSS_FLAGS2) \ $(TANDEM_OSS_FLAGS3) $(ADAPTER_DEFS) $(HAVE_USER_ADAPTERS) \ CC = c89 LD = c89 OBJ MERC1_OBJS = vtableu.o = mercmain.o corevproc.
Chapter 21 – Adding the Adapter to Mercator Command Server after $(USER_ADAPTERS). This adds the libmynewadapter.a as an archive library to be linked with the Mercator Command Server. There is also a makefile for the SDK called testapi.mak. Similar changes will be necessary here in order to add a new adapter. Mercadpt.ini The mercadpt is a component of Mercator Command Server that maintains information about what each adapter is capable of.
Chapter 21 – Adding the Adapter to Mercator Command Server PARAMETER NAME: ResMgr_Manage_Output Use_ResMgr_ Logical_Physical_Fetch PARAMETER PARAMETER DESCRIPTION: allow the adapter to be used, and give a message “Invalid Command Line”. TRUE/FALSE Resource contention on output is required; that is, should the Resource Manager manage contention for the output side of the adapter. TRUE/FALSE Adapter uses Resource Manager for connection management TRUE/FALSE Adapter supports physical bursting Mercadpt.
Chapter 21 – Adding the Adapter to Mercator Command Server Get_Function Put_Function Shutdown_Function Validate_Cmd_Function Compare_Connection_Function Connect_Function DisConnect_Function Validate_Connection_Function Free_Adapter_Parm = = = = = = = = = MNA_Get MNA_Put MNA_ShutdownAdapter MNA_ValidateCommand MNA_CompareConnections MNA_Connect MNA_DisConnect MNA_ValidateConnection MNA_FreeAdapterParms Case_Sensitive Defunct ResMgr_Manage_Output Use_ResMgr_Get_Put Logical_Physical_Fetch = = = = = TRUE F
Chapter 21 – Adding the Adapter to Mercator Command Server Removing Mercator supplied Adapters You may also wish to remove one or more of the Mercator supplied adapters; for example, the FTP adapter, the HTTP adapter, the Tuxedo Adapter, and so on. The following procedure will describe how to do this. Adapters are supplied as archive files (for example, libm4tux.a). They are built (linked) into the Mercator Command Server. The following procedure must be followed in order to remove an adapter.
PART VIII – DATABASE ADAPTERS PART VIII – DATABASE ADAPTERS This part provides overview and usage information about the NonStop SQL/MX, NonStop SQL/MP, and ODBC adapters.
Chapter 22 – NonStop SQL/MP, NonStop SQL/MX, and ODBC Adapters Chapter 22 – NonStop SQL/MP, NonStop SQL/MX, and ODBC Adapters NonStop SQL/MP, NonStop SQL/MX, and ODBC adapters are available as part of the Mercator product on the HP NonStop server.
Chapter 22 – NonStop SQL/MP, NonStop SQL/MX, and ODBC Adapters Map Platform API SQL- MX Adapter SQL- MX Adapter SQL- MX D/B The ODBC adapter provides access and manipulates data in NonStop SQL/MP and NonStop SQL/MX databases, using ODBC data sources.
Chapter 22 – NonStop SQL/MP, NonStop SQL/MX, and ODBC Adapters Generating Type Trees for NonStop SQL/MP, NonStop SQL/MX and ODBC You can generate type trees for queries, tables, and views in a NonStop SQL/MP or NonStop SQL/MX and ODBC-compliant Relational Database Management System (RDBMS) by using either of the following: • Database Interface Designer • mtsmaker with the Type Tree Maker (mtsmaker is a utility provided on non Windows-based platforms to generate type trees) For NonStop SQL/MP and NonSto
Chapter 22 – NonStop SQL/MP, NonStop SQL/MX, and ODBC Adapters Interface Designer 1. Create an ODBC Data Source. • For NonStop SQL/MX and ODBC adapters, create a data source by using the NonStop ODBC/MX 1.8 Driver in the Window’s ODBC Data Source Administrator. • For NonStop SQL/MP adapter, create a data source using the Attunity Connect Driver in the Window’s ODBC Data Source Administrator. 2. Use Database Interface Designer to create type trees. • Create a database query file (.mdq).
Index Index MaxAttempts, 86, 91 OnFailure, 90 OnSuccess, 85, 89 Switch, 86, 90 Archive (Zip) adapter AdapterRetry, 86, 90 AdapterScope, 88, 92 AdapterWarnings, 87, 91 FetchUnit, 88 Interval(Secs), 87, 91 MaxAttempts, 86, 91 OnFailure, 85, 90 OnSuccess, 85, 89 Switch, 86, 90 Archive adapter Interval(Secs), 87 MaxAttempts, 86 A adapter commands general rules, 81 using, 80 AdapterRetry, 86 Archive (Tar) adapter, 86, 90 Archive (Zip) adapter, 86, 90 Batch File adapter, 86, 90 e-mail adapters, 86, 90 FTP adapt
Index Buffer (-B), 56 Caller Mode (-M), 61 Client Name (-CN), 58 Correlation ID (-CID), 57 Data Format (-DF), 58 Dequeue Time (-DT), 59 Failure Queue Name (-FQ), 60 Field Name (-FN), 59 Header (-HDR), 60 Listen (-LSN), 60 Message ID (-MID), 62 Message Priority (-P), 62 Quantity (-QTY), 64 Queue Name (-QN), 63 Queue Space (-QS), 63 Reply Queue Name (-RQ), 64 Service Name (-N), 62 Syntax Summary, 68, 69 Top (-TOP), 65 Trace (-T), 65 User Name (-UN), 66 User Password (-UP), 66 User Return Code (-UR), 66 View N
Index OnSuccess, 85, 89 Switch, 86, 90 mode burst, 36 integral, 36 I N integral mode, 36 Integration Flow Designer BEA Tuxedo, 46 Interval(Secs), 87, 91 Archive (Tar) adapter, 87, 91 Archive (Zip) adapter, 87, 91 Archive adapter, 87 Batch File adapter, 87, 91 e-mail adapters, 87, 91 FTP adapter, 87, 91 HTTP adapter, 87, 91 LDAP adapter, 87, 91 Shell Script adapter, 87, 91 XML Data adapter, 87, 91 NonStop SQL/MP, 125 NonStop SQL/MX, 125 O ODBC, 125 OnFailure, 85, 90 Archive (Tar) adapter, 85, 90 Archiv
Index AdapterScope, 88, 92 AdapterWarnings, 87, 91 FetchUnit, 88 Interval(Secs), 87, 91 MaxAttempts, 86, 91 OnFailure, 85, 90 OnSuccess, 85, 89 Switch, 86, 90 SourceAdapterCommand, 85 BEA Tuxedo, 49 summary commands BEA Tuxedo /Q, 55 commands BEA Tuxedo service, 54 Switch, 86, 90 Archive (Tar) adapter, 86, 90 Archive (Zip) adapter, 86, 90 Batch File adapter, 86, 90 e-mail adapters, 86, 90 FTP adapter, 86, 90 HTTP adapter, 86, 90 LDAP adapter, 86, 90 Shell Script adapter, 86, 90 XML Data adapter, 86, 90 Synt