DIGITAL SNA APPC/LU6.2 Programming Interface for_DIGITAL_UNIX______________________________ Version 3.2-000 Release Notes Febuary 1998 This document includes information not included elsewhere in the DIGITAL SNA APPC/LU6.2 Programming Interface for DIGITAL UNIX, V3.2 documentation. This information includes software problems and documentation changes. _____________________ IMPORTANT _____________________ Please read these notes before installing or using the software. _____________________________________________________ Revision/Update Information: This document is new. Operating System and Version: DIGITAL UNIX V4.0- V4.0D Software Version: DIGITAL SNA APPC/LU6.2 Programming Interface for DIGITAL UNIX, V3.2 Electronic Data Systems Corporation and Digital Equipment Corporation make no representations that the use of their products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description. Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from DIGITAL or an authorized sublicensor. The information in this document is subject to change without notice and should not be construed as a commitment from Electronic Data Systems Corporation or Digital Equipment Corporation. Electronic Data Systems Corporation and Digital Equipment Corporation assume no responsibility for any errors that may appear in this document. DIGITAL conducts its business in a manner that conserves the environment and protects the safety and health of its employees, customers, and the community. Copyright © 1996, 1998 Electronic Data Systems Corporation. All Rights Reserved. Copyright © 1994 Digital Equipment Corporation. All Rights Reserved. The following are trademarks of Digital Equipment Corporation: DIGITAL SNA Domain Gateway, DIGITAL SNA Peer Server, DECnet, DIGITAL, OpenVMS, VAX, VAXcluster, VMS, VMScluster, the AlphaGeneration logo, and the DIGITAL logo. The following are third-party trademarks: Advanced Peer-to-Peer Networking, APPN, IBM, NetView, and OS/2 are registered trademarks of International Business Machines Corporation. AS/400, CICS, DISOSS, Displaywriter, OS/2 EE, OS/400, PROFS, TSO, and VTAM are trademarks of International Business Machines Corporation. UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company Ltd. This document is available on CD-ROM. ________________________________________________________________ Contents 1 New Features 1.1 CPI-C Level 1.2 non-blocking half-duplex API.......................................... 1-3 1.2 TPRM Non-Blocking Half-Duplex API ........... 1-5 1.3 Enhancements to System Logging............... 1-6 1.4 Enhancements to the LU6.2 Management Interfaces................................... 1-7 1.4.1 LU-LU Session-Level Security Passwords are Now Saved............................ 1-7 1.4.2 Display of Session PCIDs (lu62_manager)........................... 1-7 1.4.3 Automatic Update of the Main Server Screen (GUI only)........................ 1-7 1.4.4 Dynamic Control of System Logging Levels and Formatting........................... 1-7 1.4.5 Dynamic Control of SNALOG Diagnostic Logging.................................. 1-7 1.4.6 Improved On-Line Help and Context Sensitive Help........................... 1-8 1.5 SNALOG Multi-Version Log File Support........ 1-9 1.6 New System Startup Files and lu62_mcd Master Control Daemon............................... 1-10 1.7 Documentation Enhancements................... 1-11 iii 2 Programming Notes 2.1 POSIX 1003.1c Pthreads Change When Compiling Programs..................................... 2-1 2.2 CPI-C Application Interface.................. 2-1 2.3 TPRM Application Interface................... 2-2 2.3.1 Status Vector and Non-Blocking Calls..... 2-2 2.3.2 Non-Blocking Operation................... 2-2 2.3.3 Default Maximum RU Sizes When Defining Mode Names............................... 2-2 3 Documentation Errata 3.1 Incorrect Status Vector Figure............... 3-1 3.2 SNALOG Documentation Missing from Administrators Guide......................... 3-1 3.3 Defining Service Names on the Gateway........ 3-1 4 Known Problems and Limitations 4.1 Known Problems in the V3.2 Kit............... 4-1 4.2 The LU6.2 Server May Exit if it Cannot Create Another Thread............................... 4-1 4.3 LU6.2 Server Limited to Eight Characters..... 4-1 5 Problems Fixed In This Release 5.1 Segmentation Fault at display_tp_proc:7372... 5-1 5.2 LU6.2 Manager Does Not Default the Sync Level........................................ 5-1 5.3 LU62 Config File May Not be Picked Up at lu62_server Startup.......................... 5-1 5.4 CPI-C State Check............................ 5-2 5.5 Loop When Trying to Deactivate a Session..... 5-2 5.6 Incorrect ACTIVATE_SESSION Verb Completed.... 5-2 5.7 SEGV Receiving a BIND........................ 5-2 5.8 Server Hang.................................. 5-2 5.9 LU62_MANAGER Conversation Security........... 5-3 iv 6 Problems Fixed in the V3.1 ECO 02 Kit 6.1 Pthread_cond_signal Referenced Deallocated Context Block................................ 6-1 6.2 SEGV Occasionally Occurs in lu62_manager When Defining a Local LU.......................... 6-1 6.3 SEGV in lu62_config When Display a Local LU........................................... 6-1 6.4 SEGV in lu62_manager When Displaying a TP.... 6-1 6.5 Server Loops When Receiving an Inbound Attach with Security Information.................... 6-2 7 Problems Fixed in the V3.1 ECO 01 Kit 7.1 Use of Close Option from Window Menu with Load/Parse and Save Configuration............ 7-1 7.2 LU-LU Session-Level Security Verification Failed....................................... 7-1 7.3 Segmentation Faults When Session Was UNBOUND...................................... 7-1 7.4 Virtual Memory Not Freed In CPI-C When A Conversation Is In Deallocate State.......... 7-2 7.5 Segmentation Faults When Trying to Free a Buffer....................................... 7-2 7.6 AS400 Adaptive Pacing Problem................ 7-2 7.7 AS400 Fixed Pacing Problem................... 7-3 7.8 Server Hang if Session Unbound while Conversation is Active....................... 7-3 7.9 LU6.2 Verbs May Complete Prematurely......... 7-3 7.10 Unable to Run Server on TCP/IP Hosts Without a '.' in the Name............................ 7-3 7.11 The CPI-C Side File Doesn't Take the Parameter Security_Type...................... 7-4 7.12 Attach Manager Information is Missing from the Configuration File....................... 7-4 v 1 ________________________________________________________________ New Features The DIGITAL SNA APPC/LU6.2 Programming Interface for DIGITAL UNIX, V3.2 software provides a number of new features and product enhancements: o CPI-C Level 1.2 conversation-level non-blocking half- duplex API o TPRM non-blocking half-duplex API o Enhanced system logging o Improved message content and formatting o More events are logged o User control of logging based on severity o Enhancements to the LU6.2 management interface o Automatic update of the main server screen is available for the GUI o Dynamic control of system logging levels and formatting o Dynamic control of SNALOG diagnostic logging o Display of Session ID's that map to those displayed in NetView o SNALOG Multi-Version Log File Support o New system startup files and lu62_mcd master control daemon o Server startup now uses /sbin/init.d/lu62 and /usr/lib/sna/lu62_startup files. o Master Control Daemon (lu62_mcd) New Features 1-1 New Features o Documentation Enhancements o The manuals have been reorganized for ease of use o An administrator's guide has been added 1-2 New Features New Features 1.1 CPI-C Level 1.2 non-blocking half-duplex API 1.1 CPI-C Level 1.2 non-blocking half-duplex API The CPI-C Level 1.1 Application Programming Interface is enhanced to be compliant with CPI-C Level 1.2. The implementation of non-blocking half-duplex CPI-C conversation support includes conversation-level queue processing. This is based upon support for non-blocking half-duplex calls in the TPRM. The supported CPI-C calls, by category, are listed below. Refer to the IBM CPI-C Reference Version 2.1 (Ninth Edition - January 1996) for a detailed explanation of how CPI-C Level 1.2 calls function. Previously unimplemented CPI-C Level 1.2 verbs: o Extract_Conversation_Context o Extract_Maximum_Buffer_Size o Cancel_Conversation o Set_Processing_Mode o Wait_For_Conversation Previously supported CPI-C Level 1.2 verbs that now have non-blocking operation implemented: o Accept_Incoming o Allocate o Confirm o Confirmed o Deallocate o Flush o Prepare_To_Receive o Receive o Request_To_Send o Send_Data o Send_Error New Features 1-3 New Features 1.1 CPI-C Level 1.2 non-blocking half-duplex API Previously supported CPI-C verbs which were already CPI-C Level 1.2 compliant: o Convert_Incoming o Convert_Outgoing o Extract_Security_User_ID o Extract_TP_Name o Initialize_For_Incoming o Release_Local_TP_Name o Set_Conversation_Security_Password o Set_Conversation_Security_Type o Set_Conversation_Security_User_ID o Specify_Local_TP_Name Additional error codes that may be returned to the application as a result of non-bLocking operations with the CPI-C Level 1.2 interface: o CM_PROGRAM_PARAMETER_CHECK o CM_OPERATION_NOT_ACCEPTED o CM_PROGRAM_STATE_CHECK o CM_OPERATION_INCOMPLETE 1-4 New Features New Features 1.2 TPRM Non-Blocking Half-Duplex API 1.2 TPRM Non-Blocking Half-Duplex API The following TPRM calls now support non-blocking operations and are listed below. o snalu62_allocate o snalu62_receive_allocate o snalu62_confirm o snalu62_confirmed o snalu62_deallocate o snalu62_flush o snalu62_prepare_to_receive o snalu62_receive_and_wait o snalu62_receive_immediate o snalu62_request_to_send o snalu62_send_data o snalu62_send_error o snalu62_wait_for_completion o snalu62_cancel_conversation Additional return codes that may be returned as a result of TPRM non-blocking operations: o SNALU62_S_OPINCOMP (OPERATION_INCOMPLETE) indicating the verb is pending completion o SNALU62_S_OPNOTACC (OPERATION_NOT_ACCEPTED) indicating the verb was not executed or placed on the queue o SNALU62_S_TIMEXP (TIMER_EXPIRED) The specified timeout value has elapsed and none of the wait objects specified in the WAIT_OBJECT_LIST has been posted o SNALU62_S_INVTIMEO (INVALID_TIMEOUT_VALUE) A supplied TIMEOUT parameter contains a value that exceeds the range permitted by the LU6.2 implementation o SNALU62_S_NOWAITOBJ (ALL_UNKNOWN_WAIT_OBJECTS) None of the objects in a WAIT_OBJECT_LIST are valid New Features 1-5 New Features 1.3 Enhancements to System Logging 1.3 Enhancements to System Logging System Logging has been significantly enhanced in the V3.2 release. Logging messages are more informative and have been expanded to present relevant information in a format useful to the system or network manager. System logging of the lu62_server is controlled through the lu62_manager GUI interface. The lu62_server, lu62_amd, and lu62_mcd may also have their initial logging set at startup by appending the -syslog switch to their command line with an argument described below: -syslog gacewnid Refer to the DIGITAL SNA APPC/LU6.2 Programming Interface For DIGITAL UNIX Administrator's Guide in Chapter 5 and Appendix F for more information on system logging. 1-6 New Features New Features 1.4 Enhancements to the LU6.2 Management Interfaces 1.4 Enhancements to the LU6.2 Management Interfaces The lu62_manager GUI interface, and the lu62_config command line interface have been revised to provide additional information about and control over the LU6.2 product. 1.4.1 LU-LU Session-Level Security Passwords are Now Saved The lu62_manager will now save the Remote LU LU-LU Password in the server configuration file. 1.4.2 Display of Session PCIDs (lu62_manager) The main session list display and the MODE session list display now show conversation PCIDs in addition to the application specific conversation IDs for V3.2 servers. If the PCID is not obtainable, as from a pre-V3.2 server, "(unavailable)" is displayed. 1.4.3 Automatic Update of the Main Server Screen (GUI only) The main server screen may be set to update, at user discretion, by selecting a button at the bottom of the main server screen. When automatic update is enabled there will also be a slider widget to allow control of the rate of refresh. 1.4.4 Dynamic Control of System Logging Levels and Formatting The GUI-based manager allows the user to dynamically adjust system logging levels for individually selected lu62_server processes. 1.4.5 Dynamic Control of SNALOG Diagnostic Logging The GUI Based manager allows the user to dynamically enable, disable, and adjust the SNALOG debugging system for the selected lu62_server process. Control of the following SNALOG debugging options is available on the Define Server screen to control: o Log File Name o Maximum File Size in Blocks o Maximum Retained Log File Versions New Features 1-7 New Features 1.4 Enhancements to the LU6.2 Management Interfaces o Maximum Buffer Size in Bytes For more information on the new SNALOG multiple file version capability, see Section 1.5. SNALOG files are saved in the LU6.2 Server's default directory, unless another path is specified as part of the Log File Name input. When a server is directly started, without using the lu62_ mcd or the "lu62 start" command, the default path is "/". The default path, when a LU6.2 server is started using lu62_mcd or the lu62 start command is: /var/sna/lu62/daemon/SERVER_NAME where SERVER_NAME is the specified name of the LU6.2 server. If none is specified, the default name is "LU62_ SRV". The SERVER_NAME for the LU6.2 AMD process the server name is "lu62_amd". 1.4.6 Improved On-Line Help and Context Sensitive Help The lu62_manager on-line help has been revised and improved to provide more context sensitivity and useful information. 1-8 New Features New Features 1.5 SNALOG Multi-Version Log File Support 1.5 SNALOG Multi-Version Log File Support SNALOG diagnostic tracing now supports multiple output file versions. The maximum number of log file versions may be specified and controlled using the lu62_manager. See Section 1.4.4. The maximum number of log file versions may also be controlled by use of the environment variable "SNALOG_ VERSIONS". When the first log file snalog_server-name.dat approaches the size specified in the Maximum File Size, SNALOG closes the file. The log file is then renamed to snalog_server- name.dat.0001, and a new log file with the name snalog_ server-name.dat.0002 is created. This continues while SNALOG tracing is enabled or until snalog_server-name.dat.9999 is reached. If the target directory contains preexisting SNALOG files, SNALOG opens the first log file using the name snalog_server-name.dat.nnnn where nnnn is a decimal number from 0001 to 9999 and is one greater than the highest numbered existing log file. Note that if SNALOG tracing is disabled before creating a second log file, the log file name is left unchanged as snalog_server-name.dat New Features 1-9 New Features 1.6 New System Startup Files and lu62_mcd Master Control Daemon 1.6 New System Startup Files and lu62_mcd Master Control Daemon Startup has been enhanced to use a master control daemon process to watch over the lu62_amd and lu62_server processes. The lu62_mcd will restart the lu62_server or lu62_amd if they abend. The file /sbin/init.d/lu62_startup has been replaced by /sbin/init.d/lu62. To create a custom server con- figuration copy /usr/lib/sna/lu62_startup.template to /usr/lib/sna/lu62_startup and edit that file. To stop or start lu62_servers or lu62_amd processes the command has changed from /sbin/init.d/lu62_startup [start|stop] to /sbin/init.d/lu62 [start|stop] . 1-10 New Features New Features 1.7 Documentation Enhancements 1.7 Documentation Enhancements Manual revisions for V3.2 include the reorganization of material to create a new manual, the Administrators Guide. The list of manuals for V3.2 is: o DIGITAL SNA APPC/LU6.2 Programming Interface For DIGITAL UNIX Installation Guide o DIGITAL SNA APPC/LU6.2 Programming Interface For DIGITAL UNIX Administrator's Guide (New Manual) o DIGITAL SNA APPC/LU6.2 Programming Interface For DIGITAL UNIX Programming o DIGITAL SNA APPC/LU6.2 Programming Interface For DIGITAL UNIX CPI-C Implementation Specifics New Features 1-11 2 ________________________________________________________________ Programming Notes 2.1 POSIX 1003.1c Pthreads Change When Compiling Programs As of V3.2 the Pthreads library switch used when compiling programs using the LU 6.2 TPRM and CPI-C Programming Interfaces has changed to reflect the use of the POSIX 1003.1c Pthreads standard. When compiling programs -pthread should be specified on the cc or ld command instead of -threads. NOTE: Programs compiled or linked with V3.1 or earlier versions will continue to work without recompiling or relinking. 2.2 CPI-C Application Interface The IBM documentation explains CPI-C non-blocking operation (Common Programming Interface Communications Specification, Publication number: SC31-6180). In LU6.2 V3.2 the CPI-C layer follows the rules of conversation- level non-blocking. A maximum of a single outstanding call per-conversation is implemented. If the processing mode of the conversation is set to CM_NON_BLOCKING and a CPI-C call has returned the CM_ OPERATION_INCOMPLETE status code, that call operation is considered outstanding on the conversation until it is complete. The program must issue a Wait_For_Conversation call to determine when an outstanding operation has completed and to retrieve the status for the operation. While it may be correct not to issue a Wait_For_Conversation call, there is no other mechanism to determine if a outstanding verb has been completed. Programming Notes 2-1 Programming Notes 2.3 TPRM Application Interface 2.3 TPRM Application Interface 2.3.1 Status Vector and Non-Blocking Calls For all non-blocked calls that may return OPINCOMP, the status vector cannot be used to determine the status of the call until the call has been completed. 2.3.2 Non-Blocking Operation In LU6.2 V3.2, the TPRM API will allow a maximum of one outstanding operation on a conversation. Refer to the DIGITAL SNA APPC/LU6.2 Programming Interface For DIGITAL UNIX Programming manual in chapters 2 and 3 for more information. 2.3.3 Default Maximum RU Sizes When Defining Mode Names When defining a mode name using the snalu62_define_mode() verb or the LU6.2 Manager the following defaults will be applied to any unspecified send or receive maximum RU size. __________________________________________________________ RU_Size_Bound___________________Value_____________________ send_max_ru_size_lower_bound 256 preferred_send_ru_size 1024 send_max_ru_size_upper_bound 8192 receive_max_ru_size_lower_ 256 bound preferred_receive_ru_size 1024 receive_max_ru_size_upper_ 8192 bound_____________________________________________________ 2-2 Programming Notes 3 ________________________________________________________________ Documentation Errata Documentation for the DIGITAL SNA APPC/LU6.2 Programming Interface for DIGITAL UNIX, V3.2 software has the following known documentation errata. 3.1 Incorrect Status Vector Figure The figure showing the status vector (Figure 8-1 in the Administrator's Guide and Figure 3-1 in the Programming manual) indicates that vector can be composed of either 32-bit integers or 64-bit integers. This is an error; the interface always uses 32-bit integers for the status vector. 3.2 SNALOG Documentation Missing from Administrators Guide The Administrators Guide does not document SNALOG multiple file versions, but the online help for this feature is included with this release. For more information on SNALOG multiple file versions see Section 1.5. 3.3 Defining Service Names on the Gateway The Administrator's Guide states in Section 2.1 that you must define the server-name_SES service name in the gateway's /etc/services file. On a DIGITAL SNA Domain Gateway this is not possible. In reality, you can create the SNA Access Server object on the gateway using either the service name or the port number. See Section 7.2.2 in the Administrator's Guide for an example using the server's port number. Documentation Errata 3-1 4 ________________________________________________________________ Known Problems and Limitations 4.1 Known Problems in the V3.2 Kit The DIGITAL SNA APPC/LU6.2 Programming Interface for DIGITAL UNIX, V3.2 software has the following list of known problems and limitations. 4.2 The LU6.2 Server May Exit if it Cannot Create Another Thread When the LU6.2 Server attempts to create a thread but fails, the failure causes the LU6.2 Server to exit after writing an entry to the system daemon.log. To minimize this, the LU6.2 Server should be run from the root account and the threads system parameters should be set such that LU6.2 has sufficient resources to create the threads it requires. 4.3 LU6.2 Server Limited to Eight Characters Server names are limited to 8 upper case characters. Specifying one that is longer or of mixed or lower case does not result in an error. Instead, if a server name is specified that is more than eight characters it will be truncated to 8 characters. Lower case characters are upper-cased. Known Problems and Limitations 4-1 5 ________________________________________________________________ Problems Fixed In This Release The DIGITAL SNA APPC/LU6.2 Programming Interface for DIGITAL UNIX, V3.2 software includes fixes for the following notable problems present in the V3.1 release of the product. Other minor problems, not noted here, have also been corrected in this release. 5.1 Segmentation Fault at display_tp_proc:7372 The server would exit with a segmentation fault when the LU6.2 manager was used to display a TP definition after deleting the: o User ID/Profile o User ID/Profile/Remote LU o User ID/Remote LU for a given TP using the "define tp" screen in the GUI. 5.2 LU6.2 Manager Does Not Default the Sync Level The LU6.2 Manager did not default the sync level when one failed to select a sync level during a Define TP operation. Now when the synch level parameter is unspecified to snalu62_define_tp() it defaults to NONE and CONFIRMED as specified by the TPRM. 5.3 LU62 Config File May Not be Picked Up at lu62_server Startup The default config file for a server would not be picked up when the lu62_server was started when a fully qualified node name was used for the server node parameter. Both short and fully qualified server node names may now be specified. Problems Fixed In This Release 5-1 Problems Fixed In This Release 5.4 CPI-C State Check 5.4 CPI-C State Check Under certain circumstances CPI-C verbs CMALLC, CMCFMD, CMRCV, CMSEND, CMSERR, and CMDEAL would fail with a parameter check error and subsequent verbs would fail with an operation not accepted error. The parameter check was a correct error, but the internal state of the CPI-C engine was erroneously left to indicate there was a CPI-C verb queued to the conversation. 5.5 Loop When Trying to Deactivate a Session The server would enter a loop if one attempted to deactivate a session if an activation request was outstanding for a BIDDER session. This would typically happen if there was a long standing ACTIVATE SESSION request for a session on a dependent LU started with the "INITIATE OR QUEUE" option. 5.6 Incorrect ACTIVATE_SESSION Verb Completed Two outstanding ACTIVATE SESSION verbs on different local LUs where the Remote LU name was the same could exhibit incorrect behavior. If the second session activated before the first the second session activation would complete the first ACTIVATE SESSION verb instead of the second ACTIVATE SESSION verb. 5.7 SEGV Receiving a BIND A SEGV could have occurred in the lu62_server if a BIND arrived without a mode name on a dependent LU session. 5.8 Server Hang The server would hang if a session was deactivated while the conversation using that session was in send state and had pending data buffered in the lu62_server. This condition was related to a buffer deallocation deadlock situation. 5-2 Problems Fixed In This Release Problems Fixed In This Release 5.9 LU62_MANAGER Conversation Security 5.9 LU62_MANAGER Conversation Security The following list of problems are corrected in the LU62_ MANAGER's handling of conversation security information: o The LU62_DEFINE_TP module wasn't sending a PROFILE if the security type requested was SNALU62_C_ACC_USER_ PROFILE. o The SNALU62_DEFINE_TP verb incorrectly allowed user/profile/remote LU information to be supplied when the security required type was SNALU62_C_ACC_NONE or SNALU62_C_ACC_CONVERSATION. This information is now correctly rejected as specified in the TPRM. o The SNALU62_DEFINE_TP verb wasn't defaulting an unspecified SNALU62_C_ACC_CONVERSATION_TYPE parameter to allow both mapped and basic conversations. It now defaults correctly. o The Manager was incorrectly allowing users to supply security information for DEFINE_TP if the security required type was SNALU62_C_ACC_CONVERSATION. It now correctly disallows this. o The SNALU62_DEFINE_LOCAL_LU verb was not able to overwrite the LOCAL LU password if it was specified with an existing user name. o The add security options of the DEFINE_LOCAL and DEFINE_TP GUI screens the option of "None" was confusing. It now reads "No Change". Problems Fixed In This Release 5-3 6 ________________________________________________________________ Problems Fixed in the V3.1 ECO 02 Kit The DIGITAL SNA APPC/LU6.2 Programming Interface for DIGITAL UNIX, V3.2 software includes the following fixes supplied in the ECO 2 kit for the V3.1 release. 6.1 Pthread_cond_signal Referenced Deallocated Context Block This change fixes the problem reported in IPMT cases CFS.53054. Fixed a problem in which pthread_cond_signal accessed a deallocated context block. This occurs due to the mutex unlocking before the condition is signaled and a second thread deallocating the context block. 6.2 SEGV Occasionally Occurs in lu62_manager When Defining a Local LU The lu62_manager would abort with a SEGV when defining a local LU. This was due to a malformed parameter list on a call into MOTIF. This problem does not seem to show up prior to DIGITAL UNIX V4.0b 6.3 SEGV in lu62_config When Display a Local LU The lu62_config utility could potentially SEGV due to overflowing an array. This problem only occurred occasionally. 6.4 SEGV in lu62_manager When Displaying a TP If SNALOG_MASK tracing is turned on the lu62_manager process caused a SEGV when trying to display a TP. Problems Fixed in the V3.1 ECO 02 Kit 6-1 Problems Fixed in the V3.1 ECO 02 Kit 6.5 Server Loops When Receiving an Inbound Attach with Security Information 6.5 Server Loops When Receiving an Inbound Attach with Security Information The LU6.2 server process would go into a loop and hang if it received an inbound ATTACH that included security information and that inbound attach had to be queued due to the TP reaching its defined instance limit. 6-2 Problems Fixed in the V3.1 ECO 02 Kit 7 ________________________________________________________________ Problems Fixed in the V3.1 ECO 01 Kit The DIGITAL SNA APPC/LU6.2 Programming Interface for DIGITAL UNIX, V3.2 software includes the following fixes supplied in the ECO 1 kit for the V3.1 release. 7.1 Use of Close Option from Window Menu with Load/Parse and Save Configuration When using any of the Load/Parse and Save Configuration file selection components, if the Close (Alt+F4) window menu option was used to close/cancel the feature, the next attempt to use the same feature would cause the LU6.2 Manager to generate a segmentation fault. 7.2 LU-LU Session-Level Security Verification Failed The LU-LU Session-Level Security Verification has not functioned properly since the V3.0 release. A change in V3.0 ECO-01 caused the problem. 7.3 Segmentation Faults When Session Was UNBOUND Under error conditions, it is possible to have a session going away and a conversation on the session getting cleaned up. If any of the RU received for that conversation had a pacing indicator on them, then when the buffer associated with that RU is freed to BM, BM may request HS, which may not have been told the session is going away, to send a pacing response over the deactivated session. Under these circumstances, it was possible for the CP_LOCAL data structure, referenced by HS, to be deallocated and HS to attempt to access this CP_ LOCAL. This would cause the LU6.2 Server to generate a segmentation fault. The fix for this is to have HS, acquire a reference to the CP_LOCAL data structure using the HS_ID. If the CP_LOCAL cannot be found, HS clears Problems Fixed in the V3.1 ECO 01 Kit 7-1 Problems Fixed in the V3.1 ECO 01 Kit 7.3 Segmentation Faults When Session Was UNBOUND its pointer to CP_LOCAL. Otherwise, a reference count is incremented in CP_LOCAL. Before CP can deallocate this CP_LOCAL, HS has to release this reference, decrementing the reference count. CP will wait for this reference count to go to zero before deallocating CP_LOCAL. 7.4 Virtual Memory Not Freed In CPI-C When A Conversation Is In Deallocate State In CPI-C, there is no LOCAL deallocation type which caused the SNA session we were using not to be able to be used for other conversations and the virtual memory was not freed. This problem has been fixed in this kit. We now issue a call to snalu62_deallocate() with the deallocate type SNALU62_C_LOCAL, when the type of information received is: RCV_AE, RCV_DA, RCV_DN, RCV_RF, RCV_DB, RCV_ RB or RCV_DNB. 7.5 Segmentation Faults When Trying to Free a Buffer This change fixes the problem reported in IPMT cases CFS.50183. The LU6.2 server could get a segmentation fault when trying to free up a dynamic buffer. The cause is that a deallocated dynamic buffer pool was reallocated to a limited buffer pool when the session went away. We added a flag and a counter to keep better track of the dynamic buffer pool. 7.6 AS400 Adaptive Pacing Problem If the bind request specified adaptive pacing, simply echoing the same values breaks with an AS400. It assumes the LEN node mistakenly reflected the ASPI bit back. Consequently it initiates FIXED pacing where the LU6.2 server is expecting ADAPTIVE pacing. The LU6.2 server then unbinds with a sense code of 0x20110000. The fix is to set the pacing window sizes to 0 to indicate to the PLU that the LU6.2 server really does want to do ADAPTIVE pacing. 7-2 Problems Fixed in the V3.1 ECO 01 Kit Problems Fixed in the V3.1 ECO 01 Kit 7.7 AS400 Fixed Pacing Problem 7.7 AS400 Fixed Pacing Problem If the bind request specified fixed pacing and the secondary receive window size was 0, it was set to 4. This caused an AS400 to sent out an unbind with the sense code 0x0835000C because the secondary receive window size didn't match the primary send window size. The fix is to simply echo the same value unless a 0 secondary receive window size was specified. In this case the bind response is setup to indicate a secondary receive window size of 4, if in addition it is single stage pacing the primary send window size is set to the same value (4) as the newly set secondary receive window size. 7.8 Server Hang if Session Unbound while Conversation is Active This change fixes the problem reported in IPMT cases CFS.50541. The LU6.2 server would hang in the routine destroy_ limited() trying to acquire the limited pool mutex. This happened if an SNA session terminated while a conversation was still active on it. The end result was that the server would not process any further requests to establish sessions or conversations. The server would continue to process other existing conversations. 7.9 LU6.2 Verbs May Complete Prematurely Under unusual circumstances an LU6.2 call may complete prematurely. This will normally only happen if LU6.2 verbs are called from a signal handler. The fix was to make the wait on the condition variable in module CLI_VERB_HANDLER reexecute the wait until the correct client protocol state is reached. This takes care of spurious thread wake-up conditions. 7.10 Unable to Run Server on TCP/IP Hosts Without a '.' in the Name If the LU6.2 server was run on a system whose TCP/IP hostname did not contain a "." all attempts to define entities to the server, eg a local LU name, failed with the error: Problems Fixed in the V3.1 ECO 01 Kit 7-3 Problems Fixed in the V3.1 ECO 01 Kit 7.10 Unable to Run Server on TCP/IP Hosts Without a '.' in the Name %SNALU62_E_UNSUC, LU6.2 verb did not execute successfully 7.11 The CPI-C Side File Doesn't Take the Parameter Security_Type If the parameter security_type was supplied in the CPI-C side file, the syntax error message was returned. This kit has corrected this problem. Now in the side file, you can specify the security_type as none, same and program. If you don't specify the security_type, the default type will be "same". 7.12 Attach Manager Information is Missing from the Configuration File If the attach manager flag was not specified as started, the attach manager information was not saved in the configuration file on DEFINE_TP. 7-4 Problems Fixed in the V3.1 ECO 01 Kit