*** *** (C) Copyright International Business Machines Corp. 2002. *** All Rights Reserved *** Licensed Materials - Property Of IBM *** *** Welcome to WebSphere Data Interchange Version 3.1 *** *** *** For information on how to set up MQSeries for WebSphere Data Interchange see the wdi_mq_setup.txt file in the samples directory. On Windows platforms the MQSeries Services Trigger Monitor does not fully support PROCESS definitions that contain file paths having embedded blank characters e.g. "C:\Program files\". Instead run the MQSeries trigger monitor program runmqtrm as described in wdi_mq_setup.txt. *** Install instructions for WebSphere Data Interchange V3.1 W2K 1) Perform subsequent steps as a user with DB2 administrator authority. 2) After the InstallShield installation, the directory structure within the installation directory is as follows: bin bind ddl deinstl (AIX only) ixf help lib runtime runtime/adf runtime/aex runtime/dicmd runtime/dicts runtime/dtds runtime/edi runtime/eex runtime/fak runtime/prt runtime/qry runtime/rcv runtime/rpt runtime/trk runtime/wrk runtime/xex runtime/xml samples 3) Change directory to the ddl directory 4a) Issue the commands: db2 create db ediec31e db2 create db edict31e This process will create the databases. When this process has completed successfully the databases have been built. When the DB's have been created, issue the commands: altrec31 altrct31 This process will alter some of the default parameters related to log file size and number of primary and secondary logs. 4b) Change to the DB2 directory which contains the bind files for the DB2 utilities. If installing on Windows, this typically has a name like C:\Program Files\SQLLIB\bnd. If installing on AIX, this typically has a name like /u//sqllib/bnd, where is the id of the instance owner. (See DB/2 Quick Beginnings "Binding Database Utilities") Note for AIX installations: You may need to specify a different file for the messages for example /tmp/bind.msg, if you do not have write authority to the current directory. db2 connect to ediec31e db2 bind @db2ubind.lst messages bind.msg grant public db2 bind @db2cli.lst messages clibind.msg grant public db2 connect reset db2 connect to edict31e db2 bind @db2ubind.lst messages bind.msg grant public db2 bind @db2cli.lst messages clibind.msg grant public db2 connect reset Change the current directory back to the ddl directory. 5) Issue the commands: db2 -tf ediec31.ddl -l ec31.log db2 -tf edict31.ddl -l ct31.log This process creates the WebSphere Data Interchange V3.1 tables, indices, views, etc. 6) The next step will issue GRANT statements necessary for WDI Client access to the newly created tables. The default is to issue GRANTs to public. You may wish to change public to specific userids or a group of authorized users. 7) Issue the commands: db2 -tf grntec31.ddl -l grntec31.log db2 -tf grntct31.ddl -l grntct31.log 8) Change directory to the ixf directory 9) Issue the following commands in sequence: a) loadec31 b) loadct31 This process will load initial data into the DB2 tables. The loading may generate warnings, just ignore them. 10) Change directory to the bind directory 11) The next step will issue GRANT statements necessary for WebSphere Data Interchange Server access to the newly created tables. The default within bindgrnt.fil is to issue GRANTs to public. You may wish to change public to specific userids or a group of authorized users. 12) Issue the command: db2 -tf bindgrnt.fil -l bind.log This process will BIND the WebSphere Data Interchange V3.1 DB2 packages and GRANT execute authority to public. 13) The installation for the WebSphere Data Interchange V3.1 is complete. -------------------------------------------------------------------------- *** Install instructions for WebSphere Data Interchange V3.1 AIX 1) Perform subsequent steps as a user with DB2 administrator authority. If AIX, be sure you also have ROOT authority. 2) Run the InstallShield installation (wdi.exe for Windows or wdi.aix for AIX). Note: If new data is to be loaded into any tables do 3 and 4 else go to 5. 3) Change directory to the ixf directory where WDI was installed. 4) Issue the following command: loadmsgs This process will load new messages into the DB2 table. The loading may generate warnings, just ignore them. 5) Change directory to the bind directory where WDI was installed. 6) The next step will issue GRANT statements necessary for WebSphere Data Interchange Server access to the modified tables. The default within bindgrnt.fil is to issue GRANTs to public. You may wish to change public to specific userids or a group of authorized users. 7) Issue the command: db2 -tf bindgrnt.fil -l bind.log This process will BIND the WebSphere Data Interchange V3.1 DB2 packages and GRANT execute authority to public. 8) The installation for the WebSphere Data Interchange V3.1 is complete. 9) On AIX be sure that the correct permissions are granted to access the directories where the software was installed. -------------------------------------------------------------------------- 27 June 2003 - CSD6 P8009529 - IC35249 INBOUND EDI MESSAGES REPORT ERROR IN WRONG POSITION P8009561 0 ENVELOPING ON INBOUND CREATES FUNCTIONAL ACKS WITH ISA HEADER. ISA SHOULD NOT BE CREATED. P8009080 DOC TR0025 DUPLICATE TRANSACTION HAS BEEN DETECTED P8009590 ADF TO XML AND XML TO ADF TR0016 ISSUED FOR SEND/RECEIVE MAPS WITH SPECIAL LANGUAGE CHARACTERS AS INPUT. P8009604 ADD EDITRACE TO OPEN PLATFORMS P8009596 XML OUTPUT MSG > 32K ADDS EXTRA CARRIAGE RETURN CAUSING THE XML DATA TO BE NOT WELL FORMED. P8009610 WDIADAPTER ABENDS DURING ADF TO XML PROCESSING WHEN TRANSLATING CERTAIN INPUT FILES. P8009551 TR1205, RC =125 ON INBOUND DEENVELOPE AND TRANSLATE BECAUSE OF BAD DATA P8009646 - IC36000 SPORADIC WDIADAPTER FAILURES DURING XML TO EDI (RECEIVE MAP) TRANSLATION UNDER STRESS TEST. P8009521 XML FATAL MEMORY LOCATION EXCEPTION OCCURS WITH LARGE XML INPUT FILE P8009559 PERFORM REMOVE NOT DELETING ROWS FROM EDITSTO. ENCOUNTERS SQLCODE501 REASON 00C90096. P8009593 FF0591 & FF0597 ARE NOT BEING DISPLAYED IN THE PRTFILE P8009672 - IC36098 RC12 ISSUED FOR TR0852, STOPPING WDIADAPTER TRIGGER. RC8 MORE APPROPRIATE. P8009685 INTERMITTENT ABEND ON PERFORM RECONSTRUCT P8009617 - IC35901 WDIADAPTER FAILS SPORADICALLY WITH FF0579 DURING XML RECEIVE MAP PROCESSING WHEN MULTIPLE MSGS PUT ON MQ QUEUE. P8009625 - IC35932 SENDING MORE THAN ONE SALES REPORT RESULT IN FAILURE P8009713 MEMORY LEAK PROBLEMS. P8009720 PERFORM IMPORT FAILS FOR MAP WITH EMBEDDED STANDARD P8009326 - IC34598 WDISERVER ERRONEOUS TR0001 ISSUED DURING ADF TO XML TRANSLATION FOR A MANDATORY ATTRIBUTE IN OPTIONAL XML ELEMENT. P8009712 - IC36289 WDIADAPTER DOES NOT WRITE FAILED MSG TO FAILURE Q DURING EDI TO XML WHEN USING SEND/RECV MAPS AND EDIXPROC ABENDS. P8009722 EDI OUTPUT MSG > 32K CONTAINS UNEXPECTED CRLF CHARACTER. ADF TO EDI SEND MAP IS BEING USED. P8009552 PERFORM TRADING PARTNER CAPABILITY DATA EXTRACT NOT EXTRACTING DATA FOR RECEIVE (R) TRANSACTIONS. ************************************************************************* ******* End of WebSphere Data Interchange V3.1 CSD 6 README.TXT ******* ************************************************************************* -------------------------------------------------------------------------- 20 January 2003 - CSD5 P8009404 IF A TRANSLATION TABLE IS CREATED WITH MORE THAN 407 ENTRIES AND IT IS COPIED TO A NEW TABLE, ONLY 407 ENTRIES ARE COPIED. P8009540 EDIFACT DATA TAGGED ONTO THE END OF A SUCCESSFUL XML USING SEND/ RECEIVE MAPS. THE PROBLEM OCCURS WHEN THE XML DATA PRODUCED HAS FEWER BYTES THAN THE EDIFACT DATA CREATED IN THE TRANSLATION PROCESS, A RARE EVENT WHEN CONSIDERING XML TAG LENGTH. P8009174 When a type of MQ is specified on an ADF WDI currently writes the file out to a MQSeries queue one record per-messaage. This needs to be changed so that the entire file is written out to the queue as a single MQSeries message. P8009505 NULL CHARACTERS ADDED TO FILE DURING NETWORK TRANSFERS WHEN A XML FILE IS BEING CREATED WITHIN WEBSPHERE DATA INTERCHANGE NULL CHARACTERS ARE ADDED TO THE END P8009542 For EDI->XML data transformation maps, output data being written to an MQSeries queue is being truncated when the output xml data reaches a certain size, roughly 4-5K. P8009437 Create a PERFORM DELETE USAGE command with the following keywords: a) DIR (X) where X can be S(send) or R(receive), default is R send and receive b) TPTID(xxx) where xxx is the Mapname, 30 characters send and receive c) TPID(xxx) where xxx is the internal Trading partner ID, 35 bytes send d) TPNICKN(xxx) where xxx is the EDI Trading Partner Nickname (profile send and receive e) APPLTPID(xxx) where xxx is the Application Trading Partner nickname, send and receive, this is a new keyword f) APPSNDID(xxx) where xxx is the Application Sender ID, 35 characters receive g) AGENCY(xxx) where xxx is the responsible agency code, 8 characters, default is blank h) VERSION(xxx) where xxx is the version, 8 characters, default is blank i) REL(xxx) where xxx is the release, 8 characters, default is blank j) APPRECID(xxx) where xxx is the Application Receiver ID, 35 characters receive The PERFORM DELETE USAGE will have the following syntax: format for send usage PERFORM DELETE USAGE WHERE DIR(S) TPTID(mapname) APPLTPID(atpid) TPNICKN(etpid) TPID(intpid) format for receive usage PERFORM DELETE USAGE WHERE DIR(R) TPTID(mapname) APPLTPID(atpid) TPNICKN(etpid) APPSNDID(appsenderid) || APPRECID(appreceiverid) AGENCY(agency) VERSION(version) REL(release) format to delete all usages for a given map PERFORM DELETE USAGE WHERE DIR(S/R) TPTID(mapname) All values that are not required will default to blank. DIR will default to R. If both APPSNDID and APPRECID are entered, APPSNDID will be used. P8009548 &TCN NOT WORKING WHEN A LITERAL IS USED TO SET IT. REQUIRES A CHANGE TO THE CS GEN CODE. P8009475 OUTBOUND JOB ABENDING WITH OC4 ************************************************************************* ******* End of WebSphere Data Interchange V3.1 CSD 5 README.TXT ******* ************************************************************************* 6 December 2002 - CSD4 The following problems have been resolved in this corrective service disc: P8009469 UNABLE TO OPEN FILE WHEN APPTYPE(MQ) SPECIFIED P8009237 - IC34372 PERFORM ENVELOPE FAILS WITH TR0836 BECAUSE HOST STANDARD NOT FOUND IN EDIVSCST. HOST STANDARD SHOULD NOT BE REQUIRED. P8009151 VN1045 ERROR IN INB1MSG FOR NETWORK ID IINWIN ON SENDFILE P8009438 ABEND OCCURS IF A DUPLICATE GROUP IS DETECTED P8009441 UW94676 IN ERROR. After applying ptf, CONTRL message generated for CONTV21 contains incorrect value of "8" in DE 0083 Action Code in the UCM. The action code should be "7". P8009458 - IC34906 WDISERVER VARIOUS ISSUES WITH CONTRL FUNCTIONAL ACKNOWLEDGE. RECEIVE MAP USAGE SET TO CONTV21. P8009229 WHEN TR0016 ISSUED ALONG WITH TR0008 CONDITION IS NOT REFLECTED IN THE FA. P8009101 PERFORM REMOVE TRANSACTIONS LOCKING OUT TRANSLATOR WITH INTERMITTENT DEADLOCKS AND TIMEOUTS. FF0457 ALSO OCCURS. P8009517 PRINT FILE BEING DELETED ON FAILED TRANSLATION ************************************************************************* ******* End of WebSphere Data Interchange V3.1 CSD 4 README.TXT ******* ************************************************************************* 18 October 2002 - CSD3 The following problems have been resolved in this corrective service disc: P8009235 - IC34365 DUPLICATE INTERCHANGE DETECTED WHEN USING MINIMAL TRADING PARTNERS AND INTERCHANGE RECEIVER ID IS THE SAME. P8009236 - IC34370 COMMAND CHAINING QUITS AFTER TRANSLATION ERRORS DETECTED. AS A RESULT, FA'S NOT SENT AND 2ND PHASE OF TRANSLATION NOT EXECUTED. P8009299 Enhancement - ADD ABLITY TO USE USR FOLDER VALUES IN PERFORM COMMAND P8009241 - OW56079 &ISA16 VALUE NOT BEING DELIVERED IN MAPPING P8009209 - IC34239 SEND DATE ON ENV EXTRACT NOT FILLED WITH FIX TO FIX TRANSLATE AND SEND. p8009249 - IC34414 WDISERVER - FACODE IN &ERR LITERAL NOT BEING SET AS EXPECTED. &ERR(1,100,12,"INVALID VALUE") SETS UCD01 (DE 0085) TO 13. p8009358 WDISERVER DEAD LETTER QUEUE CONTAINS GARBAGE AFTER EXCEPTIO p8009374 ABEND OCCURS ON PERFORM DEENVELOPE. p8009386 COMMAND CHAINING ADF TO EDI USING EDISERVR WITH CSD2 FAILS. p8009400 Need to generate Interchange Acknowledgements (CONTROL) with appropriate "error code" and "Action code" when a duplicate envelope is encountered during the receive translation of EDIFACT data and when the PERFORM command has DUPENV(N) option. Currently DI errors out in the above scenario and doesn't generate any acknowledgements. ************************************************************************* ******* End of WebSphere Data Interchange V3.1 CSD 3 README.TXT ******* ************************************************************************* -------------------------------------------------------------------------- 30 July 2002 - CSD2 The following problems have been resolved in this corrective service disc: P8009127 While performing a performance test using PERFORM TRANSFORM 100 time I received an 0C4 Return Code 11. If I add 1 more transaction it doesn't abend. - This has been corrected. P8009187 The F record is missing data. The File type is missing as is the record count. Because of the order in which the adf were being processed the record count was unitilized when the record was being written to the tracking file. P8009191 ENHANCEMENT - LOGIC TO CVT C&D TO RAWDATA Created a new flag to indicate if RAWDATA was specified on the SENDFILE command. If it was specified the EDIRFH2 and EDIMQSR network programs will strip off C and D records. P8009196 When an EDI to XML translation is done an abend occurs because a member variable is being initilized with the maximum size of the dictionary when later code is expeciting it to be initilized to zero. Changed the default constructor to initialze the member variable to zero. ************************************************************************* ******* End of WebSphere Data Interchange V3.1 CSD 2 README.TXT ******* ************************************************************************* 09 July 2002 The following problems have been resolved in this Corrective Service Disc 1: P8008550 On AIX and Win NT, when DataInterchange fails to initialize, it doesn't give an indication of the reason for failure. On the Host, the DB2 error code is displayed. Please put a printf or display a message that shows the DB2 sql error code, e.g. -818, when DI cannot be successfully started. P8008572, OW54365, OW54366 When a map is regenerated the control string is first deleted from the database then the new control string is added to the database. during the time that the new control string is being generated it is possible for a translation to fail because the control string is not found. The problem is solved by putting a lock on the control string before the control string is deleted and releasing the lock when the control string has been regenerated. Translations will wait on the lock if they happen to occur during small window when the control string is being regenerated. P8008971 The current version of ANSI C++ distinguishes between memory allocated with new and new[]. A delete call must (according to the standard) match the new call, i.e. whether or not it has [] There are many array variables in DIAPILIB.CPP and DIAPI.H which are allocated memory using "new []" but use "delete" instead of "delete []" for deallocating the memory. Changed "delete" to "delete []" for character arrays. P8008996 TRANSLATE AND SEND TO MQ BREAKS TRANSLATED MSG INTO Customers need to be aware that when using large values for the Maximum Message Length that their process needs to have the authority to allocate large ammounts of memory. The AIX operating system provides the /etc/security/limits file for the root user to set these limits on user programs. By changing the value of the "data" tag for the user to -1 the root user can allow a user program to grow as large as the system has memory resources to support. Once changes to the limits file are made the user must log off of the machine and log back on the system. P8009057 ADD A "PERFORM PROCESS" COMMAND We have a RECEIVE AND PROCESS command that requires that a receive be done in order to get command chaining to work. Add a PERFORM PROCESS command the just skips the RECEIVE part and goes directly to the PROCESS part. This is to allow command chaining to be used with file I/O also. P8009066, OW54237, OW54238 In reviewing source part editrxml, an error in a comment appears to invalidate adf->xml translation. The translated EDI file fails to be written to the virtual array for post-processing. P8009092, OW54194, OW54429 HOST - ADF TO XML PRODUCING EMPTY TAGS WHEN NO DATA When a loop is mapped using a structure that has no data the mandatory XML segments (tags) that start the loop and end the loop are being created and empty. The segments that start a loop are currently being forced by the translation process because they usually do not have any elements. When a structure is used to qualify the loop translation forces out the segments but we don't know that there is no data for the structure until we get to the CS instructions following the first segment. Translation code will be changed to check the length of the data created during a recursion level, if the length is equal to the size of the segment id + segment delim, then we didn't create any data for the loop and we need to set the terminate flag for the current loop level. P8009103, OW55460, OW55462 When processing multiple transaction from a queue for EDI to XML, a signal 11 occurs cause the transaction not to process. This occurs with both the adapter and using ediservr to process transactions. The sequence of events involves inbound processing of a standard envelope followed by outbound processing of a different envelope standard followed by inbound processing of a standard different than the outbound standard. In this case, the translator retained the segment id from the first envelope inbound and concluded that the second inbound envelope was the same and so reused the envelope control string. Unfortunately, it was the control string from the intervening outbound processing. The fix is to clear the segment ID of the last envelope when the envelope standard changes. Additional problems were caused by the "E" envelope being applied to an "ISA" header causing a memory exception. This was trapped by edixproc (erroneously) resulting in the reported signal 11. P8009104, OW55210, OW55211 Add functionality to the EDIQSS module to be able to create files that do not exist on the system. Functionality also needs to be added to EDIFF04 to call this new functionality if an QS_NOEXIST extended return code is returned from the EDIQSS module. We also needed to make changes to the RFH2 header to allow documents to be routed once they have been placed on an outgoing MQSeries queue we will change the RFH2 network program to populate the following RFH2 Elements: - SenderId - SenderQual - ReceiverId P8009108 When the EDIRFH2 network program has to create a new header, it is not ensuring that the data following the header is alligned on a full word. The code to create a new folder had to change to pad the new folder with spaces for the alignment. P8009115, OW54496, OW55293 XML TRANSLATION PERFORMANCE ISSUES The customer noticed performance problems processing a series of identical transactions with XML output. The problem was identified as CPU intensive processing in the XML Post-Processor. Significant reduction in CPU consumption was realized by buffering the XML dictionary file for the post-processor and adding indexed segment and element searches. P8009135, OW54672, OW55064 The XML input file has data in it with tags, and there are tags in the out put, but there is additional data in the output tags that are not in the XML input file. Extraneous data is in the output file that should not be there. No errors are issued. P8009137 This PTR contains code to track the implementation of the EDICYCL Network Program. Additionally, there is a problem where a physical file name passed edirfh2 (from an & in Trans Data) is not correctly being processed. P8009146, OW55204, OW55206 Enhancement that creates a 'DELFILE' command to delete the appfile created during a dual transaction. The 'DELFILE' keyword will delete the appfile used in a TRANSLATE AND SEND, TRANSLATE AND ENVELOPE or TRANSLATE TO STANDARD command. P8009152, OW54980, OW55394 CUSTOMER TRIED TO DO A TRANSACTION STORE SEARCH, WITHOUT A SEARCH CRITERIA, AND THE SYSTEM HUNG.. Display the current date in the transaction added date (from) field as the default for panel TF03. P8009155, OW55389, OW55390 The WDI Adapter abends in EDITR when an EDIFACT map is used. Subsequent investigation revealed that the error occurs when an user validation table that is exactly 8 characters is used. P8009156 This problem is seen in Inbound translation where the INPUT EDI is plain text file. The problem occurs when a newline character doesn't exist at the end of the EDI file. When DI attempts to translate this file it returns with an error (RC=8 and ERC=6). The print file has the message "TR0200 Severity :08 Interchange envelope header is missing or invalid 1 bad records found in requestor << N/A >>'s input file EDI_IN before encountering End-of-File in RECEIVE-FILE processing mode". Also it looks like DI is trying to translate two transactions when there is only one in the input. P8009157, OW55199, OW55201 ADD ONEMSG(Y) FOR SEND PROCESSING Added functionality to handle the ONEMSG(Y) flag for the TRANSLATE AND SEND command. To do this I inserted a document break record into the queued data so that as we are sending the data we can cause the MQSeries queue to be flushed before sending more data. This causes each document to be placed in its own MQ message. Changed the code to provide these functions. ************************************************************************* ******* End of WebSphere Data Interchange V3.1 CSD 1 README.TXT ******* *************************************************************************