9.40 DEFINE_OTHER_SERVER
Note: Built-In Function Rules Usage Options
Defines details of a non-IBM i (i.e. other) system that is to be used as a server to the current RDML function.
The definition details are not persistent and only exist while the LANSA environment remains active. The time taken to define a server is minimal.
To use this BIF you must set x_run parameter CDLL to LCOMGR32.DLL and x_run parameter CMTH must be C or T.
Arguments
No
|
Type
|
Req/ Opt
|
Description
|
Min Len
|
Max Len
|
Min Dec
|
Max Dec
|
1
|
A
|
Req
|
SSN (Server Symbolic Name) This is the name that will be used in all future references to this server by this and other RDML functions.
|
1
|
10
|
|
|
2
|
A
|
Req
|
Server Network Name
|
1
|
20
|
|
|
3
|
A
|
Opt
|
Divert LOCK_OBJECT requests to this server. If this option is used all subsequent LOCK_OBJECT requests will be diverted to this server. Multiple servers will receive the same LOCK_OBJECT request if multiple servers have this option enabled concurrently.
In such cases a lock must be granted on all participating servers for the LOCK_OBJECT to complete normally. Where one server fails to grant the lock an UNLOCK_OBJECT request is made to all servers that have already granted the object lock. Note that *AUTONUM, *AUTOALP, and *DTAssslllxxxxxxxxxx system variables are also retrieved from the server if locks are diverted to the server. Refer to *AUTONUM and *AUTOALP System Variables (Data Areas) and *DTASSSLLLXXXXXXXXXX System Variables (Data Areas) in the LANSA Application Design Guide.
Y or 1 - Divert LOCK_OBJECT requests.
Z - Route lock requests AND route authority requests.
R - Route lock requests AND authority requests AND repository data requests (if not found locally). Refer to the X_RUN parameters in Using the X_RUN Command.
Other - do not divert requests.
The default value is N.
|
1
|
1
|
|
|
4
|
A
|
Opt
|
Show "Please Wait" message while connecting.
Y or 1 - Show wait message.
other - do not show message.
Default value is Y.
|
1
|
1
|
|
|
5
|
A
|
Opt
|
X_RUN exceptional arguments.
|
1
|
256
|
|
|
6
|
A
|
Opt
|
Server dependent exceptional arguments. Not currently implemented.
Do not use this argument.
|
1
|
256
|
|
|
7
|
A
|
Opt
|
Reserved for Future Expansion. Not currently implemented.
Do not use this argument.
|
1
|
256
|
|
|
8
|
A
|
Opt
|
Reserved for Future Expansion. Not currently implemented
Do not use this argument.
|
1
|
256
|
|
|
|
Return Values
No
|
Type
|
Req/ Opt
|
Description
|
Min Len
|
Max Len
|
Min Dec
|
Max Dec
|
1
|
A
|
Req
|
Return Code.
OK - Server Defined
ER - Server not defined and error message(s) issued.
|
2
|
2
|
|
|
|
Technical Notes
- The Server Network Name you specify when invoking this Built-In Function should be identical to the Partner LU Name under which the server was (or will be) enrolled within the LANSA Communications Administrator.
- It is very strongly recommended that your server definition and connection logic is coded in one and only one function, rather than scattered and repeated through many RDML functions. This approach will isolate your application from future changes to the server(s) that are being used.
- It is recommended that you use SSN values that are meaningful to end users (e.g: CHICAGO, BOSTON, CHARLIE1, etc.) as they may appear in messages from time to time.
- SSN names must be unique and start with a character in the English language alphabet (uppercase A through Z).
- A server may be repeatedly defined and (re)defined when it is not connected. If you attempt to (re)define a server that is currently connected a fatal error will result.
- The X_RUN exceptional argument may be used to override the parameters used on the X_RUN command started on the server system.
By default, the following client X_RUN parameter values are passed to (and inherited by) the X_RUN command started on the server system:CMTH=, CDLL=, DATF=, DATS=, DBCF=, DBCL=, DBLK=, DBTC=, DBUS=, DEVE=, FXQF=, FXQM=, HSKC=, INIT=, ITHP=, ITRC=, ITRL=, ITRM= , ITRO=, LANG=, PART=, PRTR=, PSPW=, PSTC=, PSWD=, TASK=, TERM=, USER=, XAFP= and XCMD. The following client X_RUN parameter values are only inherited by the server if the client and the server are using the same operating system: DBID=, DBII=, DBIT=, DBUT=, ODBI= and WPEN (and related Windows Printing Extension parameters).
All other X_RUN parameter values on the server system are defaulted (on the server system) in the usual manner (ie: from a profile file, from system environment settings, etc). Refer to the definition of the X_RUN command for details of all parameter values and the methods by which they can be specified and defaulted.
- You may override any server X_RUN parameter (via the X_RUN exceptional argument value) except for CDLL=, CMTH=, DATF=, DATS=, DBUG=, DEVE=, LANG=, MODE=, PART=, PROC=, PSPW=, USER= and XAFP=. These X_RUN arguments are unconditionally inherited from the client system. However, some of these parameters may be altered by calling SET_SESSION_VALUE before invoking CONNECT_SERVER.
Override parameters may be given a specific value, or the special value *SERVER, which indicates that the server default should be used. As an example, a Windows client using DBII=*NONE might connect to a Windows Server running Oracle. By default, Windows uses the database type MSSQLS (SQL Server), so DBUT needs to be overridden. The X_RUN exceptional argument value could be set to either DBUT=ODBCORACLE or DBUT=*SERVER.
- The details defined via this Built-In Function are not persistent. They are lost when the X_RUN command completes. You may choose to define your own set of SQL based tables to hold server details and actually read the table(s) to get values to be passed on to this Built-In Function.
- Please experiment with these facilities first and then design some sort of server architecture for your organization that has these characteristics:
- It matches your organization's requirements.
- It is quick and easy to change.
Do this before launching into any large-scale design or development project.
- The client's date format will be automatically passed to the server. If the date formats are different (e.g. MDY vs DMY), the server will automatically return data in the client's format.
The client's date format can be changed from the default by specifying the x_run parameter DATF=. Please refer to Standard X_RUN Parameters for more information about this parameter.
Note that if the client and server date formats are different, Date format validation rules specifying exact formats (e.g. DDMMYY) will fail (as the data may be returned as MMDDYY). Date format SYSFMT is recommended where clients need to use different date formats (e.g. USA and UK clients).
A Note on Error Handling
It is very strongly recommended that you avoid building complex error handling schemes into your applications. Use a very simple trap like this at all levels of your application:
if (#retcode *ne OK)
abort msgtxt('Failed to .............................')
endif
Let the standard error handling built into every generated application, take care of the problem. Situations have arisen where user defined error handling logic has become so complex as to consume 40 - 50% of all RDML code (with no obvious benefit to the application). Do not fall into this trap.