Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Request Logs - Once upon a time the Request logs were nothing but raw text dumps of the Request argument that the OECGI passed into HTTP_MCP. We are now proud to showcase our new and improved Request log format:

    Code Block
    themeConfluence
    languagetext
    titleRequest Log
    collapsetrue
    Request Argument
    --------------------------------------------------------------------------------
    <01> HTTPQueryString          : 
    <02> HTTPPathInfo             : contacts
    <03> HTTPContentType          : 
    <04> HTTPContentLength        : 0
    <05> HTTPGatewayInterface     : CGI/1.1
    <06> HTTPHTTPS                : off
    <07> HTTPAccept               : */*
    <08> HTTPCookie               : 
    <09> HTTPFrom                 : 
    <10> HTTPReferer              : 
    <11> HTTPUserAgent            : PostmanRuntime/6.1.6
    <12> HTTPTranslated           : C:\MyWebsite\www\contacts
    <13> HTTPRemoteAddr           : 127.0.0.1
    <14> HTTPRemoteHost           : 
    <15> HTTPRemoteIdent          : 
    <16> HTTPRemoteUser           : 
    <17> HTTPRequestMethod        : GET
    <18> HTTPScriptName           : /cgi-bin/oecgi4.exe
    <19> HTTPServerName           : www.contacts.com
    <20> HTTPServerPort           : 80
    <21> HTTPServerProtocol       : HTTP/1.1
    <22> HTTPServerSoftware       : Abyss/2.9.3.6-X1-Win32 AbyssLib/2.9.3.6
    <23> HTTPServerURL            : 
    <24> HTTPNoURLDecode          : 
    <25> HTTPResponseIsBinary     : 
    <26> HTTPRegistrySettings     + 
         RegistryInfo             : SOFTWARE\RevSoft\OECGI4
         EngineName               : 
         ServerURL                : localhost
         ServerPort               : 8088
         ApplicationName          : FRAMEWORKS
         UserName                 : FRAMEWORKS
         StartupFlags             : 1
         ShutdownFlags            : 1
         FilePath                 : 
         FilePathMapped           : 
         FileMode                 : 1
         SysDownPage              : 
         OILocation               : 
         AdditionalValues         : HTTP_MEDIA_TYPE,HTTP_ACCEPT_ENCODING,HTTP_ACCEPT_CHARSET,HTTP_ACCEPT_LANGUAGE,HTTP_AUTHORIZATION
    <27> HTTPOECGIVersion         : VERSION:OECGI4
    <28> HTTPGetString            : 
    <29> HTTPPostString           : 
    <30> HTTPAdditionalValues     + 
         Media-Type               : 
         Accept-Encoding          : gzip, deflate
         Accept-Charset           : 
         Accept-Language          : 
         Authorization            : 
  • Response Logs - Turns out more metadata is a good thing so we went ahead and updated the Response log with the current HTTP Framework version, Authorization information, and Query Params used:

    Code Block
    themeConfluence
    languagetext
    titleResponse Log
    collapsetrue
    HTTP Framework : v3.0.1 - 07/11/2017 12:58PM
    Time to Execute: 00h 00m 00s 063ms
    Request Method : GET
    Request URL    : http://www.contacts.com/api/contacts
    Authorization  : None
    Query Params   : company=benton
    --------------------------------------------------------------------------------
    Status: 200 OK
    Access-Control-Allow-Origin: *
    Content-Type: application/hal+json
    Content-Length: 507
    {
       "_embedded" : {
          "item" : [
             {
                "_links" : {
                   "self" : {
                      "href" : "http://www.contacts.com/api/contacts/1"
                   }
                },
                "company" : "Benton, John B Jr",
                "email" : "jbutt@gmail.com",
                "first_name" : "James",
                "last_name" : "Butt"
             }
          ]
       },
       "_links" : {
          "self" : {
             "href" : "http://www.contacts.com/api/contacts"
          }
       }
    }
  • Aborted Logs - We added a new log type for aborted web services to make it easy to identify the offending code:

    Code Block
    themeConfluence
    languagetext
    titleAborted Log
    collapsetrue
    ProcErr Argument
    --------------------------------------------------------------------------------
    ENG0010:  HTTP_CONTACTS_SERVICES, line 315.  Variable has not been assigned a value. 
  • Debugger Logs - For those who want to utilize a Debugger Intercept option for more indepth troubleshooting in their web applications, we also provide a JSON formatted log file for the basic intercept content:

    Code Block
    themeConfluence
    languagejs
    titleDebugger Log
    collapsetrue
    {
       "CallDepth" : 5,
       "CallStack" : [
          {
             "LineNo" : 315,
             "ProcName" : "HTTP_CONTACTS_SERVICES"
          },
          {
             "LineNo" : 155,
             "ProcName" : "HTTP_SERVICES"
          },
          {
             "LineNo" : 81,
             "ProcName" : "HTTP_ENTRY_POINT_SERVICES"
          },
          {
             "LineNo" : 155,
             "ProcName" : "HTTP_SERVICES"
          },
          {
             "LineNo" : 135,
             "ProcName" : "HTTP_MCP"
          }
       ],
       "Curr_Program" : "HTTP_CONTACTS_SERVICES",
       "LineNo" : 315,
       "SPStatCode" : "ENG0010:  HTTP_CONTACTS_SERVICES, line 315.  Variable has not been assigned a value.",
       "SPStatus" : 1
    }

Log File Names

What's in a name? Actually, quite a bit. We've even updated the names assigned to our log files for more diagnostic muscle:

Image Added

The format of each file name is YYYY-MM-DD_HH-MM-SS_PID_LogType.log. The PID (Process ID) can be quite useful when multiple requests are processed simultaneously. Each OpenEngine process will have its own unique PID. Since each HTTP Request and associated Response will be handled by the same OpenEngine, it's quite easy now to pair up the relevant log files. The PID also makes it easy to see when one OpenEngine process may have been terminated due to a runtime error. For instance, in the above screen shot the Debugger log file introduces a OpenEngine (PID 43028) because the original OpenEngine (44448) used by the previous HTTP Request terminated.

 

 

3.0.0

Version 3.0.0 introduces new features to make it easier to configure setup values and to accept special URLs without requiring authentication.

...