Compatibility with Noninternationalized PATROL Agents

A PATROL Agent with a version number prior to 3.4.11 does not support international PSL functions (see PSL International Functions for a listing). Before using these functions, you must verify that the version of the agent is 3.4.11 or later. You can use the examples in this section to create scripts that use international PSL functions in a way that is compatible with noninternationalized versions of the agent.

Example Code - Verify the Version of the PATROL Agent

The example code in this section creates the PatrolVersionCheck() function that evaluates the version number of the PATROL Agent. The PatrolVersionCheck() function returns a value greater than 0 if the version number indicates that the agent can run international PSL functions. Otherwise, it returns a 0.

export function i18n_set_locale;
function PatrolVersionCheck()
i18n_version = 0;
patrol_version = substr(get("/patrolVersion"), 2, 1);
patrol_release = ntharg(get("/patrolVersion"), 2, ".");
patrol_release2 = ntharg(get("/patrolVersion"), 3, ".");
patrol_release3 = ntharg(get("/patrolVersion"), 4, ".");
if( patrol_version == 3 )
if (( patrol_release == 4 ) && (patrol_release2 >= 11))
i18n_version = 1;
if (patrol_release > 4)
i18n_version = 1;
if ((patrol_release == 2) && (patrol_release2 == 9) &&
(patrol_release3 >=1))
i18n_version = 2;
if( patrol_version > 3)
i18n_version = 1;
return i18n_version;

Example Code- Conditionally Use an International Function

The example code in this section creates the i18n_set_locale() function to provide a way of using set_locale() that is compatible with noninternationalized versions of the PATROL Agent. The i18n_set_locale() function determines whether the agent can run international PSL functions by using the PatrolVersionCheck() function (Example Code - Verify the Version of the PATROL Agent ). If the agent can run these functions, it runs the set_locale() function. Otherwise, it returns a NULL string. 
function i18n_set_locale(cat,value)
if (PatrolVersionCheck() >0 ) {
    return set_locale(cat,value);
    return "";
This appendix lists the values returned by the PSL errno variable. The following table lists the numeric return value of the errno variable and its corresponding message text. 
Numeric Value Error Message Description 
0E_PSL_NO_ERROR no error returned 
1E_PSL_CAT_MEMORY_FAILURE memory allocation failure in cat()dump_hist() function 
2E_PSL_CAT_READ_ERROR read error in cat() function 
3No error message no longer used 
4No error message no longer used 
5E_PSL_CHANGE_STATE_INVALID_ STATE unable to change state of instance due to invalid state value 
6No error message no longer used 
7E_PSL_CHANGE_STATE_UNKNOWN_ OBJECT unable to change state because the instance specified does not exist or could not be found 
8E_PSL_CLOSE_BAD_CHANNEL unable to close invalid channel 
9E_PSL_CREATE_ALREADY_EXISTS create failed since instance already exists 
10E_PSL_CREATE_BAD_STATE create failed due to invalid state value 

invalid create request

The following is an example of an invalid create request: create(“/MYAPP”); 

12E_PSL_CREATE_EMPTY no instance was created because the create() function was run in the PSL standalone interpreter 
13E_PSL_CREATE_EMPTY_SYMBOL_ TABLE unable to create instance because the specified application class is not valid 
14E_PSL_CREATE_INTERNAL_FAILURE unspecified internal failure in create() function 
15E_PSL_CREATE_INACTIVE_ APPLICATION create() function not allowed because the application class is inactive 
16E_PSL_CREATE_NOT_APPLICATION application specified by object is not an application 
17E_PSL_CREATE_UNKNOWN_ APPLICATION invalid application class specified for instance in create()or blackout() function 
18E_PSL_CREATE_SUPPRESSED instance creation suppressed by application filter variables in Agent configuration 
19No error message no longer used 
20No error message no longer used 
21E_PSL_DESTROY_NOT_APPLICATION unable to destroy specified object because it is not an application instance 
22E_PSL_DESTROY_UNKNOWN_OBJECT no instance destroyed because specified instance was not found or destroy() function was run in the PSL standalone interpreter 
23E_PSL_EXECUTE_BAD_INSTANCE unable to find the instance specified in the execute() function 
24E_PSL_EXECUTE_CANNOT_CREATE_ CHANNEL could not create a channel to execute PSL process 
25E_PSL_EXECUTE_CANNOT_EXECUTE unable to execute PSL process 
26E_PSL_EXECUTE_INTERNAL_FAILURE execute failed due to internal error 

cannot use type "PSL" with execute() command

For example, you cannot use: execute("PSL", "print(get_vars("/MEMORY"));" );

Instead, you should use: print(get_vars("/MEMORY")); 

28No error message no longer used 
29E_PSL_FILE_CANNOT_OPEN could not open file 
30E_PSL_FILE_NOT_FOUND file not found 
31No error message no longer used 
32E_PSL_FILE_SECURITY_FAILED invalid permissions to access file 
33E_PSL_FILE_STAT_FAILED unable to get file system information on requested file 
34E_PSL_FOPEN_BAD_MODE unable to open specified file 
35E_PSL_FOPEN_CANNOT_CREATE_ CHANNEL unable to create channel 
36E_PSL_FOPEN_CANNOT_OPEN_FILE unable to open file 
37E_PSL_FOPEN_FILE_NOT_FOUND invalid file specified 
38E_PSL_FOPEN_STAT_FAILED unable to get file system information on requested file 

unable to find requested environment variable

This error code is useful when you receive an empty return from the getenv() function because it distinguishes between an environment variable that is set to "" and one that does not exist in the environment. 

40E_PSL_GET_CHAN_INFO_BAD_ CHANNEL request information for an invalid channel 
41E_PSL_GET_NOT_FOUND variable not found 
42E_PSL_GET_OBJECT unable to get value; specified argument is an object, not a scalar variable 
43E_PSL_GET_VARS cannot locate object specified for get_vars() function, or invalid keyword specified for get_vars() return type 
  When using the get_vars() keyword, the optional second argument must be "nodes", "subnodes", "leaves", or "all". 
44E_PSL_GREP_BAD_REGEXP regular-expression contains one or more errors 
45No error message no longer used 
46No error message no longer used 
47No error message no longer used 
48No error message no longer used 
49E_PSL_PRINTF_FORMAT invalid format specified in first argument of the printf()or sprintf() function 
50E_PSL_PRINTF_STAR '*' field width and precision usage not supported in printf() and sprintf() functions 
51E_PSL_PRINTF_TOO_FEW printf() function request does not contain enough variables for the specified format 
52E_PSL_PROC_EXISTS_BAD invalid process ID argument 
53E_PSL_READLN_BAD_CHANNEL request to read a line of data from invalid channel 
54E_PSL_READ_BAD_CHANNEL request to read from invalid channel 
55E_PSL_READ_FAILED no more data to read, or unable to read any more data 
56E_PSL_READ_FAILED_MEMORY read request failed due to insufficient memory 
57E_PSL_READLN_TRUNCATED last line read from the channel was truncated at the 4K line buffer limit 
58E_PSL_SET_NON_MODIFIABLE unable to set value; variable does not permit modification of its value 
59E_PSL_SET_SYMBOL_TABLE unable to set value; specified argument is an object, not a scalar variable 
60E_PSL_SET_WRITE_PERMISSION unable to set value; requester only has read permissions to variable or range 
61E_PSL_WRITE_BAD_CHANNEL request to write to an invalid channel 
62E_PSL_WRITE_CHANNEL_CLOSED request to write to a closed channel 
63E_PSL_WRITE_FAILED unable to write to channel 
64E_PSL_WRITE_READ_ONLY attempted to write to a channel that is designated read-only 
65E_PSL_BAD_UNLOCK lock cannot be removed because lock was not found 
66E_PSL_BAD_UNLOCK_NOT_OURS lock does not belong to the process that tried to remove the lock 
67No error message no longer used 
68E_PSL_EDOM mathematical domain error; input argument is outside the domain over which the mathematical function is defined 
69E_PSL_ERANGE mathematical range error; result of the function is outside the range of numbers that can be represented 
70E_PSL_FOPEN_BAD_CHMOD fopen() function is being used to create a file and cannot set filesystem permissions 
71E_PSL_FOPEN_BAD_CHOWN fopen() function is being used to create a file and cannot set owner of file 
72E_PSL_FOPEN_BAD_ACCOUNT unable to retrieve user account credentials for opening files, creating triggers, or scheduling events 
73E_PSL_PRINTF_LARGE_ARGUMENT argument or format string in printf()or sprintf() function is too large 
74E_PSL_SORT_BAD_MODE invalid type for sort()request 
75No error message no longer used 
76No error message no longer used 
77No error message no longer used 
78E_PSL_HISTORY_NO_INFO specified parameter has no history data 

format argument specified for the history() function has invalid characters

Valid characters are n, t, and/or v. 


fseek() function was used on a pipe channel

The fseek() function only applies to file channels. 

81E_PSL_FSEEK_BAD_CHANNEL fseek() function was used on a bad channel 
82E_PSL_FTELL_PIPE_CHANNEL ftell() function was used on a pipe channel 
  The ftell() function only applies to file channels. 
83E_PSL_FTELL_BAD_CHANNEL ftell() function was used on a bad channel 

dialog is gone and no queued values are available

No data is available for a non-blocking call.

85E_PSL_RESPONSE_NO_CONSOLE unable to find client interested in this PSL process 
86E_PSL_RESPONSE_TIMEOUT PATROL Console failed to acknowledge response() function dialog box within timeout period 
87E_PSL_SHARE_BAD_CHANNEL attempted to share a local channel, but no local channel with that process I/O number could be found 
88E_PSL_SHARE_SAME_CHANNEL attempted to share a local channel, but that global channel name was already in use 
89E_PSL_CLOSE_BUSY_CHANNEL request to close channel fails because another process is blocked on the channel 

No two reader processes (such as the read() or readln() functions) can be blocked on the same channel.

The second reader process that attempts to block the shared channel will fail; in addition, a write() function on a read-blocked channel will also fail.

This helps enforce serialization for shared channels. 

91E_PSL_UNBLOCKED_BY_CLOSE shared channel failure; a close() function has been executed against a channel that also has a blocked reader process 
92E_PSL_FULL_DISCOVERY_BAD_APP the full_discovery() function is being run in a context other than an application 

the response_get_value() function is looking for a dynamic response box with an ID number that cannot be located; the response box may have been closed


the PSL chart() function used with CHART_PRINT or CHART_DESTROY and ID has been omitted 


The snmp() function attempted to use a socket that was already in use

This error may also result from using the snmp_trap_listen() and snmp_open() functions. 

95E_PSL_TIMEOUT An SNMP request timed out while waiting for response from an SNMP session 

There was an error in the way the function was called; one of the arguments supplied (or not supplied) for the function call was bad.

This error may occur for a variety of reasons. The following are a few of the problems that may generate this error:

  • bad object id
  • invalid object type
  • no object type
  • no object value
  • required arguments missing
  • the non-numeric value supplied on a function that requires a number
  •  host name supplied but the host does not exist
  • option supplied to a function that supports a limited number of options and the one supplied is not on the list
97E_PSL_SNMP_NOT_SUPPORTED a PSL SNMP function was called, but this agent is configured with SNMP support turned off 
98E_PSL_SNMP_ALREADY_LISTENING the socket is already active to accumulate SNMP traps 
99E_PSL_SNMP_NOT_LISTENING the socket is not open to accumulate SNMP traps 
100E_PSL_SNMP_ERROR function terminated due to an error in the SNMP session 
  The function's return value contains the error information from the SNMP session. 
101E_PSL_BAD_OBJ invalid object specified 
102E_PSL_NOT_PARAM object type is not a parameter 
103E_PSL_NO_RTCELL object does not exist or is not a parameter 
104E_PSL_NOT_SUPPORTED returned when the PSL internal() function is run in the standalone interpreter 

the parameter is valid but the timestamp was omitted

This indicates that no annotations exist for any value of the parameter in the PATROL Agent history database or the timestamp is specified and no annotation exists for the value of the parameter at that timestamp. 

106E_PSL_REMOTE_QUERY_COMM_ERR the remote_event_query() function returned an error from the remote agent 
107E_PSL_REMOTE_QUERY_CREATION could not construct the remote event query 
108E_PSL_REMOTE_QUERY_CANNOT_ START could not send the remote event query to the remote agent 
109E_PSL_REMOTE_OPEN_ERR unable to open remote agent connection 

the va_start()or va_arg() function was used incorrectly

The va_start() and va_arg() functions can only be used in the context of a user-defined function definition. 

111E_PSL_BAD_DATE_STRING the convert_date()or convert_date_locale() function could not parse the date and time string 
112E_PSL_BAD_TIMEZONE the convert_date()or convert_date_locale() function did not recognize the specified timezone 
113E_PSL_CANNOT_DETERMINE_ TIMEZONE The convert_date() function uses GMT for the timezone because no timezone was supplied and the timezone used by the computer system could not be determined. 
114E_PSL_LOCK_DESTROYED The destroy_lock() function terminated a lock. 

The annotate() function was called before any data point was generated.

This occurs when the annotate() function is called before a set() function can set the parameter value. 


could not save annotation information

This occurs when an attempt to save the annotation data fails. The error may be caused by permission restrictions on the history database or as the result of an internal PATROL error. 

117E_PSL_ACL_FAILED access denied due to insufficient ACL access 
118E_PSL_PCONFIG_FAILED configuration variable function failed 
119E_PSL_NO_ANNOTATION_DATA object does not contain data 
120E_PSL_BAD_CHART_COMMAND invalid command was supplied 
121E_PSL_ALLOC_FAILED function unable to complete request 
122E_PSL_INTERNAL_ARG_ERROR invalid variable specified 
123E_PSL_INTERNAL_PARSE_FAILED operation failure due to internal error 
124E_PSL_INTERNAL_UNKNOWN_ FUNCTION invalid request issued 
125E_PSL_INTERNAL_FUNCTION_FAILED unknown object request 
126E_PSL_INTERNAL_TYPE_MISMATCH invalid type specified 
127E_PSL_INTERNAL_BAD_NAME request contains invalid name 
128E_PSL_ALREADY_WAITING another process is waiting on the ID 
129No error message no longer used 
130No error message no longer used 
131No error message no longer used 
132No error message no longer used 
133E_PSL_BAD_COMPUTATION invalid computation specified for metric 
134E_PSL_SET_LOCALE_FAILED invalid category or locale in set_locale() function 
135E_PSL_CODECVT_INVALID_MB text contains invalid characters; each invalid character is replaced with a question mark 
136E_PSL_CODECVT_NO_CONV no support for conversion between source_cs and dest_cs 
137E_PSL_CODECVT_SAME source_cs and dest_cs are the same codeset 
138E_PSL_RTE_FSEEK_RESTRICTED_ FILEOPEN_MODE The (Windows only) fseek() function was used when the whence parameter was set to 1 or used with a file that was opened in text mode 
139E_PSL_SKS_BAD_ACCOUNT The user account that executed this function does not have permission to access the SKS archive. 
140E_PSL_SKS_INSTANCE_ERR PATROL could not find the application instance that executed this function 
141E_PSL_SKS_SET_ERR PATROL could not set this value in the SKS archive 
142E_PSL_SKS_GET_ERR PATROL could not get this value from the SKS archive 
143E_BAD_PSLFUNCCALL_ERROR requested function is invalid 
144E_PSL_REMOTE_OPEN_ AUTHENTICATION_ERR remote agent has rejected the account login information 
145E_PSL_REMOTE_SESSION_INVALID invalid remote agent connection 

maximum number of remote sessions has been reached

This value can be increased/decreased by setting the maxOutboundRemoteSessions variable in the agent configuration file. 


fseek() function was used on a socket channel

The fseek() function applies only to file channels. 


ftell() function was used on a socket channel.

The ftell() function only applies to file channels. 

149E_PSL_ACCESS_DENIED internal() function denied access to specified registry key 
150E_PSL_INVALID_ARCH internal() function attempted to access 64-bit registry but agent is not running in a 64-bit process 

Where to go from here

Internationalized PSL Scripts

Was this page helpful? Yes No Submitting... Thank you