FAQ ConnectWare
On 64 bit systems the system environment e.g. "program files" folder and the system registry entries exist twice, for 64 bit applications and for 32 bit applications. These two environments are strictly separated so that a configuration done in the first will not be seen in the second one. This also applies to the ODBC subsystem.
There are two ODBC administrators to define data sources for the 64 bit and for the 32 bit environment. If you simply start the "ODBCAD32.EXE" either directly or from a system panel you will always get the 64 bit version and data sources that you define will only be usable from 64 bit applications. This "ODBCAD32.EXE" is located in the "\WINDOWS\SYSTEM32" directory. Microsoft kept the original names in their folders and EXE files so "\WINDOWS\SYSTEM32" really contains 64 bit applications and the "ODBCAD32.EXE" that you find there is a 64 bit version of the administrator.
If you want to configure the 32 bit ODBC subsystem you have to use the "ODBCAD32.EXE" from the "\WINDOWS\SYSWOW64" folder. This is the ODBC administrator that you have to use when you are configuring ODBC data sources for 32 bit applications that run under 64 bit Windows.
Only in the case that you have a 64 bit application you would need a 64 bit PARKWAY product.
For this you can contact us via our contact form.
To access ISAM files ConnectWare uses the appropriate ISAM file handler of each vendor of the ISAM system. As a result of each file operation these file handlers provide a file status code that indicates successful or unsuccessful execution of each operation.
Expected file status codes like "end of file reached" or "record not found" are convert
ed to an appropriate SQL Code, SQL State and a matching message text.
Apart of that unexpected events may occur like errors from the operating system, missing availability of storage media etc which cannot be associated to a matching SQL state. In these cases Connectware produces an SQL Code of "SQL_ERROR" with an SQL State "HY000" (general error) and the message text contains the name of the ISAM file, the operation where the error occured and the ISAM file status code.
The file status codes of ech ISAM system vendor are not standardized so the following sections describe the file status codes for each ISAM system:
Informix C-ISAM File Status Codes
Byte Designs File Status Codes
Advice: If file status codes occur which might indicate a corrupted file structure like 9/018, 9/041 etc. you should run the Micro Focus Rebuild Utility and try to repair the damaged file.
Status Code |
Description |
30 | (all files) Indicates that no further information is available concerning the cause of the error. |
34 | (sequential files only) Indicates a boundary violation. An attempt has been made to write beyond the externally defined boundaries of a file. |
35 | (all files) Indicates that an OPEN statement with the INPUT, I/ O, or EXTEND phrase has been attempted on a non-optional file that is not present. |
37 | (all files) Indicates that an OPEN statement has been attempted on a file that will not support the open mode specified in the OPEN statement. The possible violations are: The EXTEND or OUTPUT phrase has been specified but the file will not support write operations. The I/O phrase has been specified but the file will not support the input and output operations that are permitted for a relative file when opened in the I/O mode. The INPUT phrase has been specified but the file will not support read operations. |
38 | (all files) Indicates that an OPEN statement has been attempted on a file previously closed with lock. |
39 | (record sequential, relative and indexed files) Indicates that a conflict has been detected between the fixed file attributes and the attributes specified for that file in the program. |
41 | (all files) Indicates that an OPEN statement has been attempted for a file already in open mode. |
42 | (all files) Indicates that a CLOSE statement has been attempted for a file not in open mode. |
43 | (all files, sequential access mode only) Indicates that the last input-output statement executed for the associated file, prior to the execution of a DELETE or REWRITE statement, was not a successfully executed READ statement. |
44 | (record sequential files only) Indicates that a boundary violation exists. A possible violation is that an attempt has been made to WRITE or REWRITE a record that is larger than the largest, or smaller than the smallest, record allowed by the RECORD IS VARYING clause of the associated file. |
45 | (all files ) An attempt has been made to REWRITE a record to a file, and the record is not the same size as the record being replaced. For line sequential files this refers to the physical size of the record, that is after space removal, tab compression and null insertion. In this case, the physical size of the new record is allowed to be smaller than that of the record being replaced. |
46 | (all files) Indicates that a sequential READ statement has been attempted on a file open in input or I/O mode, but no valid next record has been established. This can be caused by the following conditions: The preceding START statement was unsuccessful. The preceding READ statement was unsuccessful but did not cause an at end condition. The preceding READ statement caused an at end condition. |
47 | (all files) Indicates that the execution of a READ or START statement has been attempted on a file not open in input or I/O mode. |
48 | (all files) Indicates that the execution of a WRITE statement has been attempted on a file not open in I/O, output or extend mode, or on a file open I/O in sequential access mode. |
49 | (all files) Indicates that the execution of a DELETE or REWRITE statement has been attempted on a file not open in I/O mode. |
9/001 | Insufficient buffer space. Could also indicate an out of memory situation. |
9/002 | File not open when access tried. |
9/003 | Serial mode error. |
9/004 | Illegal file name. |
9/005 | Illegal device specification. |
9/006 | Attempt to write to a file opened for input. |
9/007 | Disk space exhausted. |
9/008 | Attempt to input from a file opened for output. |
9/009 | No room in directory (also, directory does not exist). |
9/010 | File name not supplied. |
9/012 | Attempt to open a file which is already open. |
9/013 | File not found. |
9/014 | Too many files open simultaneously. |
9/015 | Too many indexed files open. |
9/016 | Too many device files open. |
9/017 | Record error: probably zero length. |
9/018 | Read part record error: EOF before EOR or file open in wrong mode. |
9/019 | Rewrite error: open mode or access mode wrong. |
9/020 | Device or resource busy. |
9/021 | File is a directory. |
9/022 | Illegal or impossible access mode for OPEN. |
9/023 | Illegal or impossible access mode for CLOSE. |
9/024 | Disk I/O error. |
9/025 | Operating system data error. |
9/026 | Block I/O error. |
9/027 | Device not available. |
9/028 | No space on device. |
9/029 | Attempt to delete open file. |
9/030 | File system is read only. |
9/031 | Not owner of file. |
9/032 | Too many indexed files, or no such process. |
9/033 | Physical I/O error. |
9/034 | Incorrect mode or file descriptor. |
9/035 | Attempt to access a file with incorrect permission. |
9/036 | File already exists. |
9/037 | File access denied. |
9/038 | Disk not compatible. |
9/039 | File not compatible. |
9/040 | Language initialization not set up correctly. |
9/041 | Corrupt index file. |
9/042 | Attempt to write on broken pipe. |
9/043 | File information missing for indexed file. |
9/045 | Attempt to open an NLS file using an incompatible program. |
9/047 | Indexed structure overflow. (Could indicate that you have reached the maximum number of duplicate keys.) |
9/065 | File locked. |
9/066 | Attempt to add duplicate record key to indexed file. |
9/067 | Indexed file not open. |
9/068 | Record locked. |
9/069 | Illegal argument to ISAM module. |
9/070 | Too many indexed files open. |
9/071 | Bad indexed file format. |
9/072 | End of indexed file. |
9/073 | No record found in indexed file. |
9/074 | No current record in indexed file. |
9/075 | Indexed data file name too long. |
9/077 | Internal ISAM module failure. |
9/078 | Illegal key description in indexed file. |
9/081 | Key already exists in indexed file. |
9/100 | Invalid file operation. |
9/101 | Illegal operation on an indexed file. |
9/102 | Sequential file with non-integral number of records. |
9/104 | Null file name used in a file operation. |
9/105 | Memory allocation error. |
9/129 | Attempt to access record zero of relative file. |
9/135 | File must not exist. |
9/138 | File closed with lock - cannot be opened. |
9/139 | Record length or key data inconsistency. |
9/141 | File already open - cannot be opened. |
9/142 | File not open - cannot be closed. |
9/143 | REWRITE/DELETE in sequential mode not preceded by successful READ. |
9/146 | No current record defined for sequential read. |
9/147 | Wrong open mode or access mode for READ/START. |
9/148 | Wrong open mode or access mode for WRITE. |
9/149 | Wrong open mode or access mode for REWRITE/ DELETE. |
9/150 | Program abandoned at user request. |
9/151 | Random read on sequential file. |
9/152 | REWRITE on file not opened I-O. |
9/158 | Attempt to REWRITE to a line-sequential file. |
9/159 | Malformed line sequential-file. |
9/161 | File header not found. |
9/173 | Called program not found. |
9/180 | End-of-file marker error. |
9/182 | Console input or console output open in wrong direction. |
9/183 | Attempt to open line sequential file for I-O. |
9/188 | File name too large. |
9/193 | Error in variable length count. |
9/194 | File size too large. |
9/195 | DELETE/REWRITE not preceded by a READ. |
9/196 | Record number too large in relative or indexed file. |
9/210 | File is closed with lock. |
9/213 | Too many locks. |
9/218 | Malformed MULTIPLE REEL/UNIT file. |
9/219 | Operating system shared file limit exceeded. |
Status Code |
Description |
04 | illegal record length in a READ operation |
14 | RELATIVE KEY overflow in a READ operation |
21 | illegal key sequence |
22 | duplicate key value |
24 | boundary violation in an operation on a relative or indexed file |
30 | permanent error |
34 | boundary violation in an operation on a sequential file |
35 | file not found |
37 | unsupported OPEN mode |
38 | OPEN on a file closed with the LOCK option |
39 | conflict of the fixed file attributes |
41 | OPEN operation on a file already opened |
42 | CLOSE operation on a file not previously opened |
43 | unsuccessful or missing READ operation before REWRITE/DELETE |
44 | illegal record length before a REWRITE operation |
46 | unsuccessful READ/START operation before READ |
47 | illegal OPEN mode (READ/START) |
48 | illegal OPEN mode (WRITE/UNLOCK) |
49 | illegal OPEN mode (REWRITE/DELETE) |
90 | OPEN on a file already opened |
91 | record not locked for a REWRITE/DELETE operation |
92 | record locked |
93 | file locked |
9A | unknown I/O operation |
Status Code | Beschreibung |
100 | duplicate record |
101 | file not open |
102 | illegal argument |
103 | illegal key desc |
104 | too many files open |
105 | bad isam file format |
106 | non-exclusive access |
107 | record locked |
108 | key already exists |
109 | is primary key |
110 | end/begin of file |
111 | no record found |
112 | no current record |
113 | file locked |
114 | file name too long |
115 | can't create lock file |
116 | can't alloc memory |
117 | bad custom collating |
118 | cannot read log rec |
119 | bad log record |
120 | cannot open log file |
121 | cannot write log rec |
122 | no transaction |
123 | no shared memory |
124 | no begin work yet |
125 | can't use nfs |
127 | no primary key |
128 | no logging |
131 | no free disk space |
132 | row size too big |
133 | audit trail exists |
134 | no more locks |
140 | global section disallowing access - VMS |
150 | demo limits have been exceeded |
153 | must be in ISMANULOCK mode |
154 | lock timeout expired |
155 | primary and mirror chunk bad |
156 | can't attach to shared memory |
157 | interrupted isam call |
158 | operation disallowed on SMI pseudo table |
159 | invalid collation specifier |
160 | retained for backward compatibility |
171 | locking or NODESIZE change |
Status Code |
Description |
100 | illegal duplicate |
101 | file not open |
102 | illegal argument |
103 | illegal key description |
104 | out of isam file handles |
105 | isam file is corrupt |
106 | can't get exclusive access |
107 | record is locked |
108 | index already defined |
109 | illegal primary key operation |
110 | start or end file reached |
111 | record not found |
112 | no current record |
113 | file is locked |
114 | file name is too long |
116 | can't allocate memory |
118 | error reading log file |
119 | log file is corrupt |
120 | unable to open log |
121 | unable to write log |
122 | transaction not found |
123 | out of shared memory |
124 | no current transaction |
127 | no primary key |
128 | logging not allowed |
129 | too many users |
132 | varlen record too big |
133 | existing audit trail |
134 | out of room in lock table |
135 | evaluation library has expired |
When opening a linked ODBC table in MS Access, the error "table not found" is appearing. After entering "ok", everything works.
Answer:
In the PARKWAY configuration tool (access via the PARKWAY program group)
switch off the option "error in a message box" in the register "errors". This option should only be used for support purposes since all errors are displayed which are exchanged between the ODBC levels/layers also, if these messages don’t directly influence the correct function of ConnectWare. You may also search for the keyword "MSYSCONF" in the online help of MS Access. You will then get closer information on it.
For further Help please contact the PARKWAY Support Contact.
When opening an ODBC table with MS Access the messages "DELETE" is displayed.
Description:
For the opening of tables, MS Access always reads the primary key values and internally generates an access table with the key values. With these values, MS Access is executing SELECT instructions with WHERE clauses. If there is something wrong with the primary key "Deleted" is indicated. The data file then is not deleted but MS Access is unable to refind the file and is giving that information.
This may occur when a COBOL picture field is not correctly filled with spaces/blanks. COBOL-sided is assumed that in a zero terminated string the field is filled up with spaces/blanks. For example: a MOVE "ABC" to an alphanumeric COBOL field PIC X(10) writes the letters "ABC" into the field and fills the last 7 digits up with 7 spaces/blanks.
ConnectWare is acting the same way if the values are transferred to the File Handler. If there are indeed no spaces/blanks in the ISAM file, MS Access is unable to locate the key value.
Solution:
1. Take care COBOL-sided that the field is correctly filled with spaces/blanks or
2. Change the SQL type of the primary key from „CHAR“ into „BINARY“ when defining the columns in ConnectWare. Only then all 10 bytes will be transferred with their actual content.
Similar problems occur with USAGE DISPLAY or COMP-3 fields if these are initiated with spaces/blanks or Low Value COBOL-sided/by COBOL. In this case, the fields have to be initiated correctly with „0“ or occupied with valid values.
The "Pass Through" Option allows it to pass the SQL statement directly to the ODBC driver of ConnectWare. This is recommended when the Jet Engine of the used ODBC tool is identified as the source for a bad performance in the ODBC part. The PARKWAY driver is reading between 1000 - 5000 (depending on physical limits) data sets per second. Therefore it can raise the performance rapidly.
The SQL statements must follow the ANSI SQL standard, only this is supported by ConnectWare. Tools like MS Access uses their own SQL, this is not compatible..
Known circumstances which decelerate the process extremely:
1. Unfortunately is the Jet Engine of the most tools the reason for a slow performance in the ODBC part. The Jet Engine restructered the SQL statements in several small statements before passing it to the ODBC driver. The solution is to use "Pass Through" SQL statement. With this the PARKWAY SQL engine will be used instead of the Jet Engine. This can raise the performance rapidly. It is important to write the SQL statements in ANSI SQL standard, only this is supported by ConnectWare. Tools like MS Access uses their own SQL, this is not compatible.
2. The ODBC trace is activated.
3. The SQL query is expressed unfavourable, e.g. no key values when linking with Joins.
4. The data is located on another PC to which the connection is very .
5. There is not enough space on the system software drive for the swap file.
Further procedure:
- cheking the known problems above and solving them
- executing the query with another tool to get information on the dependency of the used components.
- executing the query on a local drive to get information about network dependency
For more help please contact the PARKWAY Support.
ConnectWare does support Micro Focus Fileshare. ConnectWare uses the Micro Focus File Handler and represents for Fileshare nothing else but a COBOL program. This means as soon as your COBOL applications work together with Fileshare, ConnectWare also is running properly in this environment.
Description:
Mainly, two points need to be considered:
1. Switch on the Micro Focus Fileshare Support:
Start the configuration tool from the PARKWAY program group and choose the register card „Micro Focus“. This register card contains the Micro Focus Fileshare V2 support:
By choosing this option, ConnectWare is initiated to use an access modul which additionally contains the communication components for the Fileshare V2 server instead of using the local Micro Focus data access modul (which can only access to a local or if assigned by a corresponding server software, to an external drive.)
2. Use of the Fileshare server
When creating a data source the Filshare server must be used:
Under "path" enter the name of the Fileshare server e.g. $$FSSERVER\C:\DATA
Fileshare is a Micro Focus product. More informationen about installation und configuration can be found in the product documentation.
The Microsoft ODBC administrator allows to log all ODBC calls between application and driver. This information can often be useful to solve problems without an explicit error message.
The steps to create the log file:
- stop all ODBC tools if they are running
- open the ODBC administrator and select the 'Tracing' tab.
- specify a new log file name (i.e. C:\PARKWAY.LOG) and start tracing
- close the ODBC administrator
- restart the tool and execute all steps until you reach the error/problem, note that the ODBC performance slows down
- open the ODBC administrator and stop tracing
- send the log file to us
- please make sure that you stop the trace if it is not needed anymore
- the generated file might become very large, because the reports of each session will be appended
Tip:
In the case that no log file is created it would mean that the ODBC parts are not even working and they cannot cause any problems. The problem is located in a different component.
In the case you need assistance to read the log file, please feel free to contact us.
When opening a linked ODBC table in MS Access, the error "table not found" is appearing. After entering "ok", everything works.
Answer:
In the PARKWAY configuration tool (access via the PARKWAY program group)
Switch off the option "error in a message box" in the register "errors". This option should only be used for support purposes since all errors are displayed which are exchanged between the ODBC levels/layers also, if these messages don’t directly influence the correct function of ConnectWare. You may also search for the keyword "MSYSCONF" in the online help of MS Access. You will then get closer information on it.