Esempio n. 1
0
        /// <summary>
        /// Parse query result for DBA_FEATURE_USAGE_STATISTICS value.
        /// </summary>
        /// <param name="scriptInstance">script reference</param>
        /// <param name="attributeNames">attribute</param>
        /// <param name="queryOutput">Output</param>
        private static void dbaFeatureValueHandler
            (WindowsOracleInstanceDBOptionsStaticScript scriptInstance, String attributeName, String queryOutput)
        {
            Regex         r       = new Regex(@"^dbaFeatures<BDNA,1>(.*?)<BDNA,1>(.*?)<BDNA,1>(.*?)<BDNA,1>(.*?)<BDNA,1>(.*?)<=BDNA>");
            StringBuilder result  = new StringBuilder();
            StringBuilder logData = new StringBuilder();

            string output = queryOutput.Replace("\n", "").Replace("\r", "");

            foreach (String line in output.Split(new string[] { "<BDNA=>" }, StringSplitOptions.RemoveEmptyEntries))
            {
                Match match = r.Match(line);
                if (match.Length > 1)
                {
                    String FEATURE_NAME = match.Groups[1].ToString();
                    String DETECTED     = match.Groups[2].ToString();
                    String CUR_USED     = match.Groups[3].ToString();
                    String FIRST_USE    = match.Groups[4].ToString();
                    String LAST_USE     = match.Groups[5].ToString();

                    if (result.Length > 0)
                    {
                        result.Append(@"<BDNA,>");
                    }
                    result.Append(FEATURE_NAME).Append(@"<BDNA,1>");
                    result.Append(DETECTED).Append(@"<BDNA,1>");
                    result.Append(CUR_USED).Append(@"<BDNA,1>");
                    result.Append(FIRST_USE).Append(@"<BDNA,1>");
                    result.Append(LAST_USE);
                    logData.AppendFormat("{0}: {1}:{2}:{3}:{4}:{5}\n", attributeName, FEATURE_NAME, DETECTED, CUR_USED, FIRST_USE, LAST_USE);
                }
                else if (no_row_selected_pattern.IsMatch(line))
                {
                    result.Append(matchFirstGroup(line, no_row_selected_pattern));
                    logData.AppendLine("No rows selected.");
                    break;
                }
                else if (ora_error_pattern.IsMatch(line))
                {
                    result.Append(matchFirstGroup(line, ora_error_pattern));
                    logData.AppendLine("Oracle error..");
                }
            }
            Lib.Logger.TraceEvent(TraceEventType.Verbose,
                                  0,
                                  "Task Id {0}: Parse query results for attribute {1}:\n{2}",
                                  scriptInstance.m_taskId,
                                  attributeName,
                                  logData.ToString());
            if (result.Length > 0)
            {
                scriptInstance.SaveCollectedData(attributeName, result.ToString());
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Parse query result for V$OPTION value.
        /// </summary>
        /// <param name="scriptInstance">script reference</param>
        /// <param name="attributeNames">attribute</param>
        /// <param name="queryOutput">Output</param>
        private static void vOptionsValueHandler
            (WindowsOracleInstanceDBOptionsStaticScript scriptInstance, String attributeName, String queryOutput)
        {
            Regex         r       = new Regex(@"^<BDNA>vOptions<BDNA>(.*?)<BDNA>(.*?)<BDNA>$");
            StringBuilder result  = new StringBuilder();
            StringBuilder logData = new StringBuilder();

            foreach (String line in queryOutput.Split('\n', '\r'))
            {
                if (r.IsMatch(line))
                {
                    Match match = r.Match(line);
                    if (match.Length > 1)
                    {
                        String PARAMETER = match.Groups[1].ToString();
                        String VALUE     = match.Groups[2].ToString();

                        if (result.Length > 0)
                        {
                            result.Append(@"<BDNA,>");
                        }
                        result.Append(@"PARAMETER=").Append(PARAMETER);
                        result.Append(@"<BDNA,1>VALUE=").Append(VALUE);
                        logData.AppendFormat("{0}: {1}:{2}\n", attributeName, PARAMETER, VALUE);
                    }
                }
            }
            Lib.Logger.TraceEvent(TraceEventType.Verbose,
                                  0,
                                  "Task Id {0}: Parse query results for attribute {1}:\n{2}",
                                  scriptInstance.m_taskId,
                                  attributeName,
                                  logData.ToString());
            if (result.Length > 0)
            {
                scriptInstance.SaveCollectedData(attributeName, result.ToString());
            }
        }