Date: Thu, 28 Mar 2024 21:25:12 +0100 (CET) Message-ID: <335708941.111264.1711657512730@srvdoc.doc.ipesoft.com> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_111263_1304806504.1711657512730" ------=_Part_111263_1304806504.1711657512730 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
Document version: 1.0, 26.2.2008
Basic information about logging of process 2000 DBManager are shown in this description.
This document is used for detail description of log lists and their usag= e for:
The most of the following methods suppose that the objects of Database typ=
e have been configured with the allowed option Debug. It is recommended (for D2000 version 7.01.022 and higher one=
s) to set the size of log file (MB) at option Debug and to configure the actions logging into separate file for ea=
ch database. The size of log file must be large enough to obtain the log da=
ta for long period (the maximum size of log file DBManager.log is 10=
MB).
DBManager should be run for adequately long period including the period of=
maximum system load (e.g. 24 hours during working day). Also it is recomme=
nded to configure the start-up parameter/E+DBG.DBMANAGER d=
etermined for logging of details about performed operations.
Following errors can be detected from logs:
Click on the button Test in the object conf= iguration of Table type allows to test manually the table functionality besides = the detection from DBManager logs.
Precondition: DBManager runs adequately long period to approach (= reading or writing) to all tables which are to be checked.
Searched string: Cannot get any result from SQL Col= umns.
Example:
13:42:28.960 08.02 *** Error in con 1: 13:42:28.962 08.02 con 1:[GetColumnDescript] 13:42:28.964 08.02 con 1:<HI ws1phum1 browser> 13:42:28.967 08.02 con 1:Cannot get any result from SQLColumns. Possible ca= uses are: table "dba"."MAT_SKUPINAxx"=20 does not exist in SQL database; table is not visible by defined user; table= has not any column with name matching=20 its structure definition in D2000
Solution: to check
Searched string: text data mapped to non-text colum= ns
Example:
14:05:36.496 08.02 Table MAT_SKUPINA (DB.MAT_SKUPINA) text data mapped= to non-text columns:NAZOV
Solution: To integrate column type in SQL database and =
in structure definition connected in object configuration of Table type. Th=
e column in SQL database is text type and column of structure definition in=
D2000 is not text type. In this configuration it depends on if data in spe=
cific column of table in SQL database can be converted to type different fr=
om text type (integer, real, etc.) during reading.
The result of errors at conversion can be for example:
Searched string: non-number data mapped to number c= olumns
Example:
15:47:29.976 08.02 Table Time_Test (DB.Cas) non-number data mapped to = number columns:Cas,
Solution: To integrate the column type in SQL database = and in structure definition connected in object configuration of Table type. The= column in SQL database is not numeric, the column of structure definition = in D2000 is numeric (integer, real or relative time). In this configuration= it depends on if data in specific column of table in SQL database can be c= onverted to type different from text type (integer, real, etc.) durin= g reading.
Following errors, in the form of ODBC or OCI error, can be detected from= logs.
Searched string: *** Error in
Example:
OCI version:
21:00:11.961 07.02 *** Error in con 2: 21:00:11.962 07.02 con 2:<E.IOPT_Export: 95; 3624><E.IOPT_Sc= heduler: 32> 21:00:11.962 07.02 con 2:[InsertRecord] Execute: INSERT INTO "ROVE_IOPT"."S= _IF_USER" ("IU_ID","IU_PERS_ID","IU_FS_ID","IU_DB_USER","IU_FIRSTNAME","IU_= SURNAME","IU_APPL", "IU_PWD_PERMANENT","IU_PWD_KONTO","IU_STATUS","IU_DELETE","IU_TADI_ID") VAL= UES (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12) ,row 1,Exception name:=20 OCI.THICK.LIB_ERROR Message: ORA-01400: cannot insert NULL do ("IOPT"."IF_USER"."IU_FIRSTNAME") ORA-06512: at line "IOPT.G_IF_USER_TB" Call stack traceback locations: 0x51ae1e 0x51af63 0x5142c3 0x76e54b 0x77= 2065 0x7d0536 0x7e2230 0x8219fa 0x77e64827
ODBC version:
16:22:18.474 08.02 *** Error in con 3: 16:22:18.475 08.02 con 3:[PrepareSqlStmt] SQLExecDirect: SELECT ID_MATERIAL= FROM materialXX=20 16:22:18.477 08.02 con 3:<S.sql_Test_Evil: 106> 16:22:18.478 08.02 con 3:(S0002) [Sybase][ODBC Driver][Adaptive Server Anyw= here]Table 'materialXX' not found ErrorCode=3D -141
Solution: Error analysis (e.g. searching of ORA-xxxxx e= rror message, cause detection and removal). If the error occurred e.g. at s= pecific values entering it is recommended to configure start-up parameter <= strong>/E+DBG.DBMANAGER.DATA for process SELF.DBM (value logging).=
Example of usage:
15:20:21.659 08.02 Db SKEI_MES, con 2:PageInsert BEG 15:20:21.660 08.02 PositionedInsert: INSERT INTO "MES"."SOURCE_PLACE" ("ID"= ,"IDVECT","KOD","ADDR","NAME","SV_IDX", "WHX","SIMAODB","NTYP","ID_T") VALUES (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13,:14,:15) 15:20:21.661 08.02 PositionedInsert time displayed in pure UTC (configured = offset +0) 15:20:21.661 08.02 PositionedInsert data: 88; NULL; 'gsdaf.GPS'; NULL; 'fsg= dfd.GPS'; 28; 1.00E+00; NULL; 10; 5; 15:20:21.667 08.02 *** Error in Db SKEI_MES, con 2: 15:20:21.668 08.02 Db SKEI_MES, con 2:<E.Max_ID: 133; 15><[] S.Sch= emeOM: 19; 135; 153> 15:20:21.668 08.02 Db SKEI_MES, con 2:[PositionedInsert] Execute/Commit "RO= VE_MES"."ODBERNE_MIESTO":Exception name: OCI.THICK.LIB_ERROR Message: ORA-01438: value larger than specified precision allowed for this = column Call stack traceback locations: 0x51b0ce 0x51b213 0x514573 0x767089 0x7ca8db 0x7cab31 0x7e01f8 0x81f71a 0x7= 7e64827 =20 15:20:21.669 08.02 PositionedInsert end 15:20:21.669 08.02 Db SKEI_MES, con 2:PageInsert END
In this example you can open the browser and try to enter manually the w= ritten values into table. The saving had run without error till the value i= n column "NTYP" was less than 10. Oracle Enterprise Manager detected that t= his column was created by mistake in SQL database as Number(1), i.e. number= with range of one figure.
Searched string: timeout expired
Example:
10:03:44.597 17.02 WD: con 3: timeout expired 1 times in U_EXECDIRECT1= /D_EXECDIRECT2
Connection No. 3 makes some action (detail list U_EXECDIRECT1/D_EXECD= IRECT2 are determined for D2000 developers but they indicate that it co= ncerns probably SQL_EXEC_DIRECT). After searching the first existence of st= ring con 3 you can see that the last command, which started to perfo= rm, was:
10:02:16.864 17.02 con 3:SQL_EXEC_DIRECT BEG
If debug category DBG.DBMANAGER is switched on, the list contains also the sp= ecific command which is executed:
10:02:16.865 17.02 ExecDirect: Delete from EDA_Vektor v WHERE ID_Vekto= r >=3D 2000000 AND id_vektor not in (select id_vektor from EDA_VEKTOR_SC= ENAR) AND not exists (SELECT f.id_vektor FROM EDA_Predpis_Funkcie f WHERE f= .funkcia like '%' || v.meno || '%' )=20
If the option Debug is switched on, = DBManager writes also the information about creating, using and ending of t= he connections into log. The connection is created or assigned as the resul= t of following actions:
The other actions use the handle obtained by calling the actions DB_TRANS_OPEN, DB_CONNECT, PG_CONNECT and SQ=
L_CONNECT. They must run on the connection which the handle is bounded =
up with. Actions SBS_* (DBS_BLOB_* including) use the connection and releas=
e it immediately.
Following messages concerning the creating and assigning of the automatic =
connection exist in the system:
Message | Description |
---|---|
(X1) got free NTC | Free automatic connection was used (no handle bo= unded with this connection exists). |
(X2) has 3/7 NTC,reusing T con 4 | Number of automati= c connections did not reached the value defined in Database configuration. Free = connection - transactional - is available. This connection will be changed = into automatic and will be used. |
(X3) has 3/7 NTC,creating new | Number of automati= c connections did not reached the value defined in Database configuration. Neith= er free connection nor transactional is available. That is why the new conn= ection on database creates. |
(X4) has 7/7 NTC,reusing con 5 | Number of automati= c connections reached the value defined in Database configuration. One of the au= tomatic connections will be used (even though no one is free, i.e. at least= one handle is bounded on each connection). The connection with the less re= quests in queue or with the flag not_busy (currently it processes no= request) is used. |
(X5) has 7/7 NTC, not found any good, hardpanic!= | In spite of the number of automatic connections reached the value defined in Database configuratio=
n, no one available connection was searched. This status could occur up to version 7.01.023 immediately after restart o= f DBManager. If the requests came before the = predefined connections was linked to database (e.g. connection to Oracl= e database can take several seconds) or in case of database inaccessible an= d connection failed repeatedly. Another occurrence: When DBManager starts= -up and some of the databases is switched off= and then switch on, the requests for database come before the predefin= ed connections linked to database (if database is switched off during DBManager starts-up, the predefined connection= s do not link to database but they wait until the database is switch on).= p> |
(X6) has 7 cons, limit is 7, can't create NTC, reusi= ng con 1 | Number of automati= c connections has not reached the value defined in Database configuration and it= is not possible to create a new connection because there is the maximum connections (i.e. other connections are use= d as transactional). One of the automatic connections will be used accordin= g to the same rules as it is in X4. |
(X7) has 7 cons,limit is 7, can't create NTC, no= t found any good, hardpanic! | Number of automati= c connections has not reached the value defined in Database configuration and it= is not possible to create a new connection because there is the maximum connections. At the same time the all conne= ctions are used as transactional. This situation should not occur as one co= nnection is always booked as automatic. |
Messages X4 and X6 do not mean that the requests must wait on each other in D=
BManager. Even if some of the browsers use the same automatic connection, t=
his connection is not used most of the time (until user activates to load t=
he new page or makes the changes). There is only one possibility - more act=
ions come close one by one and one action will wait until another one perfo=
rms.
Wait state is possible to monitor by start-up parameter /DBD<number_of_requests>. R=
ecommended mechanism is following:
Using the tell commands SHOW_HANDLE and SHOW_CONNECT is possible to show the status o= f all connections on database and to analyze their usage and some problems:=
->Db DBC_ROVE_EDA con 6:normal, 2 handles, transact 301747, idle 02:53:44.316 ->Db DBC_ROVE_EDA con 6:trans DBC_ROVE_EDA: <[] S.EDA_Komp_TreeData= _Vektor: 531; 567> ->Db DBC_ROVE_EDA con 6:dbase DBC_ROVE_EDA: <[] S.EDA_Komp_TreeData= _Vektor: 532; 567>Above mentioned transactions can be forgotten (DB_TRANS_CLOSE was not called after DB_TRANS_COMMIT or DB_TRANS_ROLLBACK) and they = will be ended after closing the picture (if they are placed in picture scri= pt) or by event ending/saving (if it concerns about the server event the tr= ansactions will be ended after process .EVH finishes).