Tmax 5 SP1 Fix#1
This chapter briefly describes the features added in Tmax 5 SP1 Fix #1. For detailed information, refer to the relevant guide.
1. Added features
1.1. TCP Gateway
-
Added TCPGW connect_check Callback
A client connection control callback function (allow_connection) has been added. To use this callback, you need to implement the function in register.c.
allow_connection , _tcpgw_regfn(26, allow_connection);
Register a function and implement the corresponding callback function in custom.c. Whether to allow or disallow a remote connection is determined by the return value (positive = allow, negative = disallow).
-
Added TCPGW remote connection retry count and timeout time adjustment options.
-
Added connect timeout setting function
[-X CONN_TIMEOUT=n]
-
Added the ability to set the number of reconnect attempts
[-X CONN_RETRY=n]
-
-
Added a connection option [-f] in TCPGW-dedicated mode
-
When remoteCLI_A is connected in dedicated mode, if remoteCLI_B connects, both A and B are disconnected.
-
Added functionality to disconnect only remoteCLI_A connections and allow remoteCLI_B connections when using the option (-f).
-
1.2. SERVER
Added a functionality to enable st -s-x functionality in SysMaster.
The tmadmin() API provided by the server library also adds the st -s -x query function of the utility tmadmin.
1.3. TDL
TDL tdlcall variable argument API has been added.
In TDL VERSION = 3, the tdlcall variable argument API tdlcallva, tdlcallva2 functions were added.
-
tdlcallva
This function calls the latest version of a dynamic module function, using the function name as a key. When the prototype of a dynamic module function is not fixed, the function is called by passing the parameters as is.
#include <tdlcall.h> int tdlcallva(char *funcname, long urcode, int flags, int rettype, void *retval, int argc, …);
-
tdlcallva2
This function calls the latest version of a dynamic module function, using the library name and function name as keys. If the prototype of a dynamic module function is not fixed, the function is called by passing the parameters as is.
#include <tdlcall.h> int tdlcallva2(char *libname, char *funcname, long urcode, int flags, int rettype, void *retval, int argc, …);
1.4. UTIL
-
Improved tmadmin suspend function
When suspending a specific server, if a service is running on that server, the suspend request would wait until the service is terminated. However, a function has been added so that even if the service is running, the suspend request is applied immediately and returned without waiting.
-
Added [-k], [-a] options when suspending and resuming tmadmin spr
Added [-k], [-a] options for suspend and resume for tmadmin spr.
-
How to use
sp -v svrname [-k n] [-a]
Option Description [-k n]
Number of sprs to suspend/resume
[-a]
Run immediately
-
Example
When the server’s MAX is 10, executing the following command will suspend the five processes with the largest spri. If the service is running, it will wait until the service terminates. To run the command without waiting, use the [-a] option.
sp -v svr -k 5
-
-
Added option to remove mksvr default CFLAG
When using the mksvr option [-u], a feature has been added to allow user-defined options to be applied instead of default options being applied.
2. Bug patch
2.1. Engine
-
Custom gateway IRT malfunction
Fixed the issue where Custom Gateway IRT would malfunction.
-
Error in performing IRT when using svr type Custom Gateway
-
Error when requesting tpacall TPBLOCK|TPNOREPLY for COUSIN svc and not receiving a response
-
Error when calling COUSIN svc on a node without COUSIN setting, IRT is not possible
-
Related issue: IMS 40853
-
-
Error when calling from DYN server and not receiving response
-
Fixed the issue where tpcall, tpacll, tpsuspend, tpresume, tpforward, and interactive communication between servers set to DYN and other DYN servers would not receive a response.
-
Related issue: IMS 54342
-
-
General server boot failure when setting up DYN server
-
Fixed the issue where the normal server boot would fail during tmboot if there was a normal server setup after the DYN server setup.
-
-
Abnormal backup operation in node backup
-
An error that occurred when setting up backup of svg due to a bug caused by adding the AUTOBACKUP option to the SERVERGROUP section in SP 5.0 has been fixed.
-
-
CLH memory leak
-
The phenomenon of memory leak in CLH when a channel is reconnected from a terminated state and becomes available in an environment where TCP G/W and Tmax Domain (Non-TX) G/W are set as cousins has been fixed.
-
Related issue: IMS 57415
-
-
Error where the client connection was terminated in event CLH, and the resource cleanup was not performed properly.
-
In a 4-node environment, when starting each node simultaneously with tmboot -n 'hostname' from the console without going through racd, the phenomenon of other servers not starting after CLH is started has been fixed.
-
-
If you suspend a server with MAXQCOUNT set and then make a request to the server, an error regarding the MAXQCOUNT setting will occur.
-
The issue where service requests would continue to pile up in the queue despite the MAXQCOUNT setting after suspending a specific server has been fixed.
-
-
Fix tmm abnormal termination error when reconnecting after closing network connection of mksvr built node
-
Fixed an error where tmm would terminate abnormally when reconnecting after a node network connection was terminated if the Cousin group’s server was built with mksvr.
-
-
When spri requests another service from a server close to MAXSPR, an error occurs when tpforward or tpreturn is not responded to.
-
The issue where Domain Gateway receives requests from other domains and requests services from its own node and does not receive a response has been fixed.
-
Related issue: IMS 62036
-
-
An error that causes CLH to terminate abnormally when the UCS server terminates abnormally under load.
-
The phenomenon of CLH abnormally terminating when a service request comes in to CLH and the process of transmitting a message to a UCS-type server process is terminated abnormally or a problem occurs in the socket connection between the server and CLH, causing a stack overflow and abnormal termination due to recursive calls has been corrected.
-
Related issue: IMS 62143
-
2.2. SERVER
-
Version compatibility patch
-
Older version AUTOTRAN compatibility patch
The older AUTOTRAN=Y and the current AUTOTRAN=Y have different functions. Therefore, AUTOTRAN=B is provided in 5.0 to support the older AUTOTRAN=Y. AUTOTRAN=B has been modified to function identically to the older Y.
-
Related issue: IMS 60833
-
-
tpsvrdone API abnormal operation error
-
The issue where an unknown message type error would occur in the response of the service called from within tpsvrdone when calling a service from another server within the server shutdown function (tpsvrdone) and the service from the server where tpsvrdone is running was called has been fixed.
-
Related issue: IMS 61897
-
-
Error when calling tpreturn() with TPNOREPLY flag
-
When setting the TPNOREPLY flag and calling a service with tpacall(), a TPEITYPE error occurs when the service performs a tpreturn() on the field buffer if there is some service execution time. This has been fixed.
-
Related issue: IMS 56121
-
-
tx_connection_reset when calling tpreturn() in a server group with XAOPTION="DYNAMIC"
-
Starting from SP1 5.0, when XAOPTION="DYNAMIC" is set in the SERVERGROUP section of the environment settings, RM reconnection is performed when tpreturn() or tpforward() is performed, but the log below is recorded in slog every time reconnection is performed, but if a transaction is in progress during tpreturn(), RM reconnection is always performed after calling xa_end(), and it has been modified to reconnect RM only when xa_end() fails.
"SVR0211 General Infomation : tx_connection_reset start" "SVR0211 General Infomation : tx_connection_reset success"
-
2.3. TDL
-
TDLCLOSE_HARD flags malfunction in tdlclose()
When TDLCLOSE_HARD is set as flags in the tdlclose() function, the module that was dynamically loaded with tdlcall2() is released (dlclose). This has been fixed as an error occurred where the index used in the local cache was not initialized and the module was not processed properly the next time it was called.
-
Module update failure when calling tdlupdate in TDL LANG=COBOL environment
When updating a module using tdlupdate, the extension of the currently running module should be changed to the previous seqno, and the extension of the newly updated module should be copied to so. However, this did not work, and the currently running module retained the so extension, while the extension of the newly updated module was applied with the latest seqno. Therefore, even if tdlcall was used after applying tdlupdate, it was modified to operate with the previously reflected module.
2.4. UTIL
-
tmadmin suspend abnormal operation
Fixed an error that caused tmadmin suspend to malfunction.
-
A problem that occurs when a service (server) running in tmadmin is suspended and is in a blocked state, and the server abnormally terminates due to SVCTIMEOUT.
-
If another tmadmin logs in and exits while suspending tmadmin, a hang occurs in tmadmin that was performing the suspend.
-
When I suspend in tmadmin, it blocks for a long time, so I terminate it with ctrl + c, resume the server, and when I call suspend again, it hangs.
-
Related issue: IMS 56416
-
-
NRDY status being displayed randomly when executing tmadmin st -v with setting of minclh > 1 or higher
In an environment where two or more CLHs are running, when stat information is retrieved with tmadmin, it has been changed to be displayed in sorted order starting from CLH index 0 starting from Tmax 5 SP1. However, when querying server status information with the st -v option, an issue occurred where the status was randomly displayed as NRDY even though the status was clearly RDY, and this issue has been fixed.
-
Check server status error
-
Fixed an error that caused incorrect results when querying STD_DYN, UCS_DYN servers with st -v.
-
Related issue: IMS 54177
-
2.5. TCP Gateway
-
When requesting tpacall (TPNOREPLY) with the -E option applied in tcpgw, some messages are lost.
-
In an environment where the -E option in tcpgw is used to connect to remote for each request and close the channel when a response is received, the phenomenon of some remote data being lost when a tpacall (TPNOREPLY) request is made to tcpgw when the CPC setting of the server is 1 or higher has been fixed.
-
Related issue: IMS 59295
-
-
Message loss while relaying to another service when requesting TPNOTRAN with tcpgw
-
The phenomenon of message loss when a request is made to tcpgw with tpacall (TPNOTRAN) in a service where a transaction is in progress, and a response is received from tcpgw’s remote after the transaction is completed and relayed to another service has been fixed.
-