Tivoli Service Desk 6.0 Developer's Toolkit Tools and Utilities Guide
The Developer's Toolkit Interpreter is the core of the Developer's Toolkit run-time system. The Developer's Toolkit Interpreter executes the statements and expressions that comprise a Developer's Toolkit application.
When the Developer's Toolkit Interpreter searches for a .kb file that has no explicitly specified directory, it checks directories in the following order:
The Developer's Toolkit Interpreter accepts arguments from the command prompt with the following syntax:
kml [option ...] .kb file
Valid arguments for the Developer's Toolkit Interpreter include those listed in the following table.
Note: These arguments are uppercase in UNIX.
Arguments | Value | Comment |
-u<path> | Use | Adds the directories in the given path to a list of
directories to be searched. This occurs when the Developer's Toolkit Interpreter finds the
.kbc files corresponding to the .kb files used by the root .kb file. (The root .kb file is
the parent to other .kb files.). The path may consist of many qualified directory names
separated by semicolons. Note: UNIX requires colons. |
-t | Trace (Debugger) | Starts the Developer's Toolkit Interpreter in trace mode. The Developer's Toolkit Interpreter enters the Developer's Toolkit Debugger prior to the execution of the first line of the root .kb file. |
-l | Log | Causes the Developer's Toolkit Interpreter to write a log message to a file named kml.log. This occurs in the current directory for every statement in the kml.log file. This option should be used with caution because it can consume large quantities of disk space and slow application execution. |
-o | Optimization Off | Turns off demand loading of .kbc files. |
-? -HELP -H |
Help | Displays a brief summary of the command line switches that it accepts. |
-d | DLLname | "Preloads" dlls during program initialization. This is primarily used for debugging purposes during development. |
-c | Directory | Changes the current drive and/or directory during program initialization. |
-f | KBCfilename | Used as an alternative method to specify one or more kbc files to load. You can specify -f=<filename> more than once on a command prompt. You can also load multiple kbcs into the process that are not related by means of the USES chain. Although .kbc files do not know about other .kbc files at parse time, they can still call back and forth via the CallFunction statement. The root .kb file is always the last file specified by -F at the command prompt. |
-p | netPort | Supports the Developer's Toolkit networking extensions. |
The following table summarizes error conditions reported by the Developer's Toolkit
Interpreter.
Error | Explanation |
A type conversion failed while attempting to pack Developer's Toolkit arguments for external routine <routine>. | The value passed as an argument to the external routine cannot be converted to the type expected by that routine. |
An internal error occurred while attempting to convert values returned from external routine <routine> back into Developer's Toolkit format. | This refers to an underflow condition where the value returned from the external routine did not conform to the declared type for the external routine. |
Packing the argument list for external routine <routine> exceeded the maximum available storage. | The entire argument list for the external routine exceeded the 4096- byte limit imposed by the Developer's Toolkit Interpreter. |
Unable to convert $UNKNOWN into a valid C/C++ value when calling external routine <routine>. | An unknown value was passed as a parameter (or as a field of a record passed as a parameter) to an external routine, and there is no default value specified for the type that the routine expects. There is no way to pass the value to the C or C++ routine. |
Insufficient memory | The Developer's Toolkit Interpreter is unable to allocate any additional memory. |
Internal error detected at line <line #> in "<filename>" | An error condition exists within the Developer's Toolkit Interpreter. Note the file name and line number and contact Tivoli Customer Support. |
Index <n> out of bounds | The code attempted to access the nth item in an array or list that has less than n items in it. |
Unable to load <filename> Dynamic Load Library (DLL). | The named library was not found. Be sure the library exists and is in your path. |
Function <name> (<filename>) is not implemented. | The Developer's Toolkit Interpreter was unable to access the named function. Be sure you have the correct version of Developer's Toolkit installed and that it is the only version available on your system. |
An error occurred while reading file "<filename>" | This can be caused by a read-only setting on a file, a non-existent or deleted file, or a disk or network failure. |
$EventParm #<n> does not exist. The valid range is 1 to <n>. | Review the valid event parameters for events in the Developer's Toolkit Script Language Reference. |
The type of EventParm #<n> (<type>) does not match the declared type (<type>). | Review the valid event parameters for events in the Developer's Toolkit Script Language Reference. |
Assignment to $EventParm #<n> illegal, because it was not passed by reference. | The $EventParm assignment was illegal. You can avoid the assignment using a field in the event handler's instance data or a global variable. |
Attempt to open file "<filename>" with an invalid mode: <mode> | Use the given internal constants ($Read, $Write, or $Create) to open files. |
The formal parameter list for function <name> cannot be bound to the command-line arguments. | Be sure the arguments for the function are of the correct type. This error can also be caused by out of date .kbc files that need to be reparsed. |
Unable to open file "<filename>" | This can be caused by a read-only setting on a file, a non-existent or deleted file, or a disk or network failure. |
File is not a compiled Knowledgebase: <filename> | Be sure you specify the name of a .kbc (not .kb) file which is in the current directory or in one of the paths specified earlier in this chapter. For more information, see the section Searching for .kb Files. |
File <filename> was parsed by an obsolete version of the parser. | Reparse the .kb file with the -b parameter (build) to eliminate this problem. |
File <name>.kbc was not properly generated. Please re-parse the corresponding knowledgebase. | The .kbc file is corrupted. You must reparse. |
File <filename> is out-of-date with respect to knowledgebase <name>. | Reparse the file with the -b parameter (build) to eliminate this problem. |
Division by zero in <filename> | Use the Developer's Toolkit Debugger to determine where the division by zero occurs and add additional code to prevent it. |
Square root of a negative number <n> | Use the Developer's Toolkit Debugger to determine why this occurs and add additional code to prevent it. |
Attempt to assign an unknown value to character #<n> of string "<name>" | The Developer's Toolkit code is trying to perform an
operation like: TYPES s : string; ACTIONS s[5] := $UNKNOWN; END; Use the Developer's Toolkit Debugger to determine why this occurs and add additional code to prevent it. |
Unrecognized option: <option> | The syntax used at the command prompt for the Developer's Toolkit Interpreter was not recognized. |
More than 65535 types defined within the application | Unless your .kb file is exceptionally large. this error is probably caused by an internal error or a corrupted .kbc file. Reparse and try again. |
Unable to replace the string {{<reference string>}} with a value. | The reference string is invalid in some way. |
An invalid bind parameter has been found. Either the syntax of the parameter was incorrect, or there was no parameter data to associate with the marker. | There is an error in the syntax of the SQL function call. |
The entry named "<name>" has a type (<typespec>) that is not supported. | This can be caused by an internal error, an out of date, or corrupted .kbc file. Reparse and try again. |
Knowledgebase <name> has no entry routine. | A valid entry routine is a procedure which meets the
following requirements:
|
Unable to make <drive letter> the default drive. | Be sure a drive with the given letter exists. |
Unable to make "<name>" the current directory. | Be sure the given directory exists. |
Unable to find a file with the name <filename>. Using <filename> instead. This behavior will not be supported in future releases. | If you specify a .kb file name in the USES section of a .kb file, it should have the same case as the file containing that .kb file. If the .kb file name does not use the same case, the Developer's Toolkit Interpreter cannot find it and the error message appears. |
Tivoli Service Desk 6.0 Developer's Toolkit Tools and Utilities Guide