6 Replies Latest reply: Nov 16, 2012 3:15 AM by Barossa RSS

    WLDF: how to interpret data in column 'arguments' of table 'WLS_EVENTS'

    533972
      Hi All,

      i am trying to use WLDF to capture the status of the weblogic server.

      i am trying to use the action 'DisplayArgumentAction' to capture the method parameters of monitor JDBC_Before_Execute.

      When i check the log in the admin console, the argument is captured but encoded in unknown format.(base64 encoded?)

      the WLDF document don't mention the data format.

      my question is: how can i decoded the data to human readable form for checking?

      thank you.
        • 1. Re: WLDF: how to interpret data in column 'arguments' of table 'WLS_EVENTS'
          854030
          WLDF instrumentation introduced a general change to the arguments capture support that treats arguments as sensitive and not captured unless explicitly marked as not being sensitive.
          If the values that you are seeing are "******", that is due to that change.

          If that is the case, you can define a custom monitor with a pointcut expression that marks the explicit arguments they want to see with "%" .

          The documentation for defining pointcuts for custom monitors and the syntax is at:

          http://download.oracle.com/docs/cd/E17904_01/web.1111/e13714/config_instrumentation.htm#i1085776
          http://download.oracle.com/docs/cd/E17904_01/web.1111/e13714/config_instrumentation.htm#i1085781

          The % is not allowed on ... or *, so it must be explicit on the arguments that are not sensitive.

          For example:
          "call(* +java.sql.Statement execute(% java.lang.String) OR call(* +java.sql.Statement execute(% java.lang.String, % int))"

          If that is not what you are seeing, what version of WebLogic are you using?
          • 2. Re: WLDF: how to interpret data in column 'arguments' of table 'WLS_EVENTS'
            468350
            Hi,
            i wrote this monitor

            <wldf-instrumentation-monitor>
            <name>myMonitor2</name>
            <enabled>true</enabled>
            <action>DisplayArgumentsAction</action>
            <location-type>before</location-type>
            <pointcut>call(* com.i4c.antares.wizardeditor.web.* next(java.lang.String))</pointcut>
            </wldf-instrumentation-monitor>

            but in this way weblogic doesn't show me my monitor. Whereas in this way it shows me '*****,*****':
            <wldf-instrumentation-monitor>
            <name>myMonitor2</name>
            <enabled>true</enabled>
            <action>DisplayArgumentsAction</action>
            <location-type>before</location-type>
            <pointcut>call(* com.i4c.antares.wizardeditor.web.* next(...))</pointcut>
            </wldf-instrumentation-monitor>

            is there anybody that can help me???thanks
            • 3. Re: WLDF: how to interpret data in column 'arguments' of table 'WLS_EVENTS'
              649018
              From the docs link posted above:

              A % (percent character) prefix designates the value of a non-static class instantiation, parameter, or return specification as not containing nor exposing sensitive information. The use of this operator is particularly useful with the DisplayArgumentsAction action, which captures method arguments or return values. If this prefix character is not explicitly used, an asterisk string is substituted for the value that is returned; this behavior ensures that sensitive data in your application is not inadvertently transmitted when an instrumentation event captures input arguments to, or return values from, a joinpoint.

              Note:
              The % operator cannot be applied to an ellipsis or to a wildcarded type within a pointcut expression.



              So, try something like mycall(%arg1, %arg2, arg3). In that example arg1 and arg2 will display, but arg3 will be regarded as sensitive and masked with asterisks. As noted above, you can not wildcard arguments with %.
              • 4. Re: WLDF: how to interpret data in column 'arguments' of table 'WLS_EVENTS'
                468350
                Ok, thanks...i'll try it.

                I have another question...

                i defined 2 two monitor: a DisplayArgumentsAction and a TraceElapsedTimeAction to take arguments and time method. I would send a trap only if a payload is greater than a particular value and arguments is another particular value.
                Is it possible to do? (my doubt is that is impossible to put in AND two monitor)....

                thanks again..
                • 5. Re: WLDF: how to interpret data in column 'arguments' of table 'WLS_EVENTS'
                  533972
                  Hi,

                  actually i want to know what data is written to the DB table (as i want to write a simple program to facilitate
                  troublshoot the performance).. (my company have >100 weblogic instances running, i want to have a simple
                  tool for system support/troubleshooting...)

                  so i need to know how to interpret the data.

                  And i later find that the PAYLOAD column (for tracetimeelapse) store a java Long object, while the ARGUMENT
                  column store string (as binary)...

                  so, i can't use simple SQL statement only, for inspecting the record..

                  thank you.
                  • 6. Re: WLDF: how to interpret data in column 'arguments' of table 'WLS_EVENTS'
                    Barossa
                    Hi there,

                    any information for which version of WebLogic the introduction of this "security feature" was done?
                    Is it documented somewhere? I'd love to read some more details...

                    many thanks!!

                    F.