In this article:

Outputting Additional Debug Info

Log Structure

Log Parsing

Working with Debug Info

The platform core forms debug info that reflects running processes and work results. This information is displayed by operating system debuggers that is why it is not available in the development environment of Foresight Analytics Platform. Access to debug info can be obtained using the DebugView application included in the Sysinternals software package. Start the DebugView application, check the Capture Win32 setting in the Capture main menu item. If the setting is disabled, enable it.

After this the log displays debug info formed by the core of tools of Foresight Analytics Platform.

The example of DebugView log with information from Foresight Analytics Platform:

...
1 0.00000000 [9556] INTL-SetLocale: Russian_RUS.1251
2 0.00064479 [9556] LICENSE: Requesting feature "AnalyticsPlatform" v9...
3 0.01438539 [9556] LSDURATION: LSRequest 0.014 s
4 0.01475035 [9556] LICENSE: Accepted request for feature "AnalyticsPlatform" from license.server
5 0.01552302 [9556] INFO: Audit user: FSAUDIT, source: registry HKLM
6 0.02441553 [9556] PREPARED SQL: exec [Warehouse].[dbo].B_SEC_DAT_VALUE :IDS, :RESLO OUT
7 0.02447300 [9556] PARAMS:
8 0.02447300 [9556]  IDS = AUDITOR
9 0.02447300 [9556]  RESLO =  
10 0.02644256 [9556] PREPARED SQL: exec [Warehouse].[dbo].B_SEC_DAT_VALUE :IDS, :RESLO OUT
11 0.02650244 [9556] PARAMS:
12 0.02650244 [9556]  IDS = PSWSTR,ROLESTR,CHPSW
13 0.02650244 [9556]  RESLO =  
14 0.04149621 [9556] PREPARED SQL: USE Warehouse
15 0.04322175 [9556] PREPARED SQL: select b.name from Warehouse.dbo.sysusers b where b.sid = SUSER_SID(N'SA')
16 0.04322175 [9556]  
17 0.04471623 [9556] PREPARED SQL: select schema_name()
18 0.04471623 [9556]  
19 0.04580421 [9556] PREPARED SQL: select schema_id(:schemaname)
20 0.04580421 [9556]  
21 0.04585506 [9556] PARAMS:
22 0.04585506 [9556]  schemaname = dbo
23 0.04680163 [9556] PREPARED SQL: select FILEGROUP_NAME( i.groupid ) from sysobjects o,sysindexes i where  o.parent_obj = OBJECT_ID(:TableName) and o.xtype='PK' and o.name=i.name and o.parent_obj=i.id
24 0.04680163 [9556]  
25 0.04684676 [9556] PARAMS:
26 0.04684676 [9556]  TableName = dbo.B_OBJ
27 0.04976620 [9556] MB: SessionId for log = [2F8C0C99BA9740C5]
28 0.05006377 [9556] SETUP: [2F8C0C99BA9740C5] Key: HKEY_LOCAL_MACHINE\Software\Foresight\Foresight Analytics Platform\10.0\Service\Mbs\WAREHOUSE Value: endpoint = , NOT SET
29 0.05034991 [9556] PREPARED SQL: [2F8C0C99BA9740C5] set :A=SYSUTCDATETIME()
30 0.05039955 [9556] PARAMS: [2F8C0C99BA9740C5]
31 0.05039955 [9556]  A =  
32 0.05215339 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select max(a.VER) as VER from dbo.B_LAST a
33 0.05215339 [9556]  
34 0.05301119 [9556] PREPARED SQL: [2F8C0C99BA9740C5] insert into dbo.B_LOGSEQ(V) values(1);set :A=cast(scope_identity() as int);
35 0.05306024 [9556] PARAMS: [2F8C0C99BA9740C5]
36 0.05306024 [9556]  A =  
37 0.05447739 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select :A=max(a.STAMP) from dbo.B_SEC a where a.SEC = 0
38 0.05452252 [9556] PARAMS: [2F8C0C99BA9740C5]
39 0.05452252 [9556]  A =  
40 0.05565323 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.BIN, a.BIN_HASH from dbo.B_SEC a where a.SEC = 0
41 0.05565323 [9556]  
42 0.09871852 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.OBJ, a.CLS, a.ID, a.NAM, a.DES, a.PAR, a.STAMP, a.SD, a.ITL, a.SHC, a.LIN, a.APP, a.DEF, a.TRACK_DEP, a.MBSOURCE, a.VER , a.ONS from dbo.B_OBJ a where (a.OBJ = :A)
43 0.10037968 [9556]  
44 0.10557197 [9556] PARAMS: [2F8C0C99BA9740C5]
45 0.10572121 [9556]  A = 69949
46 0.10586804 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.OBJ, a.CLS, a.ID, a.NAM, a.DES, a.PAR, a.STAMP, a.SD, a.ITL, a.SHC, a.LIN, a.APP, a.DEF, a.TRACK_DEP, a.MBSOURCE, a.VER , a.ONS from dbo.B_OBJ a where (a.OBJ = :A)
47 0.10600735 [9556]  
48 0.10614996 [9556] PARAMS: [2F8C0C99BA9740C5]
49 0.10630311 [9556]  A = 122079
50 0.10648153 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.BIN from dbo.B_SD a where a.SD = :A
51 0.10662596 [9556]  
52 0.10676978 [9556] PARAMS: [2F8C0C99BA9740C5]
53 0.10690878 [9556]  A = 103051
54 0.10714136 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.OBJ, a.CLS, a.ID, a.NAM, a.DES, a.PAR, a.STAMP, a.SD, a.ITL, a.SHC, a.LIN, a.APP, a.DEF, a.TRACK_DEP, a.MBSOURCE, a.VER , a.ONS from dbo.B_OBJ a where (a.OBJ = :A)
55 0.10744585 [9556]  
56 0.10759148 [9556] PARAMS: [2F8C0C99BA9740C5]
57 0.10773139 [9556]  A = 88053
58 0.10789055 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.BIN from dbo.B_SD a where a.SD = :A
59 0.10824861 [9556]  
60 0.10909408 [9556] PARAMS: [2F8C0C99BA9740C5]
61 0.10934471 [9556]  A = 142941
62 0.10948492 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.BIN from dbo.B_SD a where a.SD = :A
63 0.10962844 [9556]  
64 0.10982672 [9556] PARAMS: [2F8C0C99BA9740C5]
65 0.10996723 [9556]  A = 142868
66 0.11013422 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.DAT, a.ID, a.VI, a.VS from dbo.B_SEC_DAT a
67 0.11028346 [9556]  
68 0.11044714 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.STA, a.ID, a.TYP, a.DOM, a.ACC from dbo.B_SEC_STA a where a.TYP = :T and a.DOM = :D
69 0.11058734 [9556]  
70 0.11072846 [9556] PARAMS: [2F8C0C99BA9740C5]
71 0.11087228 [9556]  T = 1
72 0.11103987 [9556]  D = 0
73 0.11124447 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.CER_K, a.FLG, a.ID, a.NAM, a.DAT from dbo.B_CER_V a
74 0.11162538 [9556]  
75 0.11177522 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select SUSER_SNAME(b.sid) from Warehouse.dbo.sysusers b where upper(b.name) = 'DBO'
76 0.11191212 [9556]  
77 0.11207159 [9556] PREPARED SQL: [2F8C0C99BA9740C5] exec dbo.B_LOGNSUC :USRLO, :USRSTA, :USRDOM, :RESLO OUT
78 0.11220999 [9556] PARAMS: [2F8C0C99BA9740C5]
79 0.11235863 [9556]  USRLO = admin
80 0.11251780 [9556]  USRSTA = IVANOV
81 0.11266041 [9556]  USRDOM = WORK
82 0.11279912 [9556]  RESLO =  
83 0.11293933 [9556] PREPARED SQL: [2F8C0C99BA9740C5] insert into dbo.B_JLO(SES, STAMP, STAMP_OUT, US_SID, US_NAM, US_DES, US_STA, US_OS, US_IP, ALLO,CMNT,SES_ID, US_MAC) values(:A, :B, :C, :D, :E, :F, :G, :H, :I, :J,:CMNT, @@SPID, :K)
84 0.11308074 [9556] PARAMS: [2F8C0C99BA9740C5]
85 0.11322336 [9556]  A = 307526
86 0.11336507 [9556]  B = 27.03.2024 07:46:30.808
87 0.11354470 [9556]  C = 22.12.2026 07:46:30.808
88 0.11368731 [9556]  D = PS-1-1
89 0.11383475 [9556]  E = ADMIN
90 0.11397555 [9556]  F = the ADMIN user
91 0.11412871 [9556]  G = IVANOV
92 0.11461674 [9556]  H = ivan.ivanov
93 0.11475875 [9556]  I = 192.168.1.1;
94 0.11489866 [9556]  J = 1
95 0.11503947 [9556]  CMNT = Platform version: 10.4.10087.0 Master x64 Web application
96 0.11518539 [9556]  K = 94de806959dd
97 0.11533042 [9556] PREPARED SQL: [2F8C0C99BA9740C5] select a.SD, a.BIN from dbo.B_SD a where a.HSH = :A
...

Log structure is described below.

Outputting Additional Debug Info

The following information is displayed in the log by default:

If required, the amount of displayed information can be increased due to output of debug info.

When working in Linux OS, debug info can be output only to file. To enable debug info output, use the PP_LOG environment variable with the 1 value. Debug info will be output to the file /var/log/apache2-fp10.x/error.log.

To increase the amount of displayed information when working in Windows OS, one can add the following registry keys:

  • In the key [HKEY_CURRENT_USER\Software\Foresight\Foresight Analytics Platform\10.0\Debug]:

    • The GCTrace parameter of the REG_DWORD type with the 1 value - to display development environment garbage collector messages.

    • The MsDump parameters of the REG_DWORD type with the 1, 2 or 3 value - to display messages during modeling problem calculation.

    • The RdsSelectLog parameter of the REG_DWORD type with the 1 value - to display requests created during the work with table MDM dictionaries.

  • In the key [HKEY_CURRENT_USER\Software\Foresight\Foresight Analytics Platform\10.0\Scheduler]:

    • The Trace parameter of the REG_DWORD type with the 3 value - to display task scheduler debug info.

  • In the key [HKEY_CURRENT_USER\Software\Foresight\Foresight Analytics Platform\10.0\DevEnv]:

    • The DevEnvDebug parameter of the REG_DWORD type with the 1 value - to get messages about creating development environment components.

    • The DevEnvParserDebug parameter of the REG_DWORD type with the 1 value - to get development environment parser messages.

Debug info can be output to a file. To do this, create the Log subsection in the registry key [HKEY_CURRENT_USER\SOFTWARE\Foresight\Foresight Analytics Platform\10.0]. In the subsection create the FileName string parameter, specify in the parameter name and path to the file, to which debug info will be output.

When working with BI server of Foresight Analytics Platform, all specified keys are created in the [HKEY_LOCAL_MACHINE] registry key.

IMPORTANT. Enabling additional debug info can cause system slowdown and additional resource consumption. After debugging is finished, disable debug info output by setting the appropriate keys to 0 or deleting them from the registry. To improve performance, one can also turn off debug info output by setting the WriteToDebugOutput parameter to 0 in the registry key [HKEY_CURRENT_USER\SOFTWARE\Foresight\Foresight Analytics Platform\10.0\Log]. When working in Linux OS, delete or comment the PP_LOG environment variable.

For details about available flags, their purpose and allowed values see the Additional Settings of Foresight Analytics Platform knowledge base subsection.

Log Structure

To understand debug info contents, all messages are marked with tags that indicate which block generated a message or which information is contained in a message. Tag and message are divided by :.

When connecting to repository, the unique session identifier is generated:

MB: SessionId for log = [2F8C0C99BA9740C5]

The following operations also use this identifier. This allows for dividing queries sent from different repository connections. At the beginning of the session the system displays information about the user who executes connection:

78 0.11220999 [9556] PARAMS: [2F8C0C99BA9740C5]

79 0.11235863 [9556]  USRLO = admin

80 0.11251780 [9556]  USRSTA = IVANOV

81 0.11266041 [9556]  USRDOM = WORK

82 0.11279912 [9556]  RESLO =

83 0.11293933 [9556] PREPARED SQL: [2F8C0C99BA9740C5] insert into dbo.B_JLO(SES, STAMP, STAMP_OUT, US_SID, US_NAM, US_DES, US_STA, US_OS, US_IP, ALLO,CMNT,SES_ID, US_MAC) values(:A, :B, :C, :D, :E, :F, :G, :H, :I, :J,:CMNT, @@SPID, :K)

84 0.11308074 [9556] PARAMS: [2F8C0C99BA9740C5]

85 0.11322336 [9556]  A = 307526

86 0.11336507 [9556]  B = 27.03.2024 07:46:30.808

87 0.11354470 [9556]  C = 22.12.2026 07:46:30.808

88 0.11368731 [9556]  D = PS-1-1

89 0.11383475 [9556]  E = ADMIN

90 0.11397555 [9556]  F = the ADMIN user

91 0.11412871 [9556]  G = IVANOV

92 0.11461674 [9556]  H = ivan.ivanov

93 0.11475875 [9556]  I = 192.168.1.1

94 0.11489866 [9556]  J = 1

95 0.11503947 [9556]  CMNT = Platform version: 10.4.10087.0 Master x64 Web application

96 0.11518539 [9556]  K = 94de806959dd

The following tags are used to indicate messages:

Log Parsing

First of all, check if there are error messages. To do this, search for the Exception keyword in the text. To search, press CTRL+F, to continue search, press F3. The example of possible error:

...
[15612] EXCEPTION_CLASS: CPiException
[15612] EXCEPTION: TEXT: Accessing not created object
[15612] EXCEPTION: Caught ..\Mod\Fore\Frt\FrtBindableObjects.cpp(2297) at long __cdecl CForeBindableSub::Invoke(void)
[15612] EXCEPTION: Caught ..\Mod\Fore\Frt\kxInterpreterObjects.cpp(1288) at long __cdecl CEventSink::Invoke(long,const struct _GUID &,unsigned long,unsigned short,struct tagDISPPARAMS *,struct tagVARIANT *,struct tagEXCEPINFO *,unsigned int *)
[15612] CPiException caught in CPiApp::Run. Recovering...
[15612] UXEVENT: 2167614:9280:Menu: Start WM_COMMAND event: 1
[15612] UXEVENT: 2167614:9280:Menu: Finish WM_COMMAND event: 1, Total time: 4.00005374103785
[15612] EXCEPTION: Accessing not created object
[15612] Error class: CPiException
[15612] Source: OBJ60945, row 11
[15612] ___________________________________
[15612] Call stack:
[15612] Caught ..\Mod\Fore\Frt\FrtBindableObjects.cpp(2297) at long __cdecl CForeBindableSub::Invoke(void)
[15612] Caught ..\Mod\Fore\Frt\kxInterpreterObjects.cpp(1288) at long __cdecl CEventSink::Invoke(long,const struct _GUID &,unsigned long,unsigned short,struct tagDISPPARAMS *,struct tagVARIANT *,struct tagEXCEPINFO *,unsigned int *)
[15612]  
[15612] UXEVENT: Start EXCEPTION
[15612] UXEVENT: Accessing not created object
[15612] Error class: CPiException
[15612] Source: OBJ60945, row 11
[15612] ___________________________________
[15612] Call stack:
[15612] Caught ..\Mod\Fore\Frt\FrtBindableObjects.cpp(2297) at long __cdecl CForeBindableSub::Invoke(void)  
[15612] Caught ..\Mod\Fore\Frt\kxInterpreterObjects.cpp(1288) at long __cdecl CEventSink::Invoke(long,const struct _GUID &,unsigned long,unsigned short,struct tagDISPPARAMS *,struct tagVARIANT *,struct tagEXCEPINFO *,unsigned int *)  
[15612]  
[15612] UXEVENT: End EXCEPTION
...

Possible errors:

Very rarely, the Access Violation error may occur. This error indicates that there is an unhandled exception in internal code of Foresight Analytics Platform. Inform the technical support service at which conditions this error occurred to be able to make important corrections to product code.

Along with errors, the log contains information messages about application work. Consider possible messages for each tool, their contents and analysis for assessment and planning of future actions.

[ms$]. Modeling and forecasting, calculation algorithms

See also:

Running and Debugging