サービス エクスチェンジ : Cisco Service Control Application for Broadband

SCA BB Reporter が新しいデータを返さない

2016 年 10 月 27 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 8 月 22 日) | フィードバック

概要

このドキュメントでは、Cisco Service Control Engine(SCE)のアップグレード後に、Cisco Service Control Application for Broadband(SCA BB)レポーターが新しいデータを返さない問題を解決する方法を説明します。

著者:Cisco TAC エンジニア、Cong Li、Glen Beach、Simon Chow

問題

SCE および Cisco Collection Manager(CE)のアップグレード後に、SCA BB レポーターが新しいデータを返しません。

解決策

 新しいデータが挿入されない問題の解決方法を説明します。

問題が発生している SCA BB レポーターは、使用中の raw データ レコード(RDR)に基づいています。 次の例に、Link Usage RDR(LUR)タグ 0xf0f0f005 / 4042321925 に基づく「network usage per service」レポートのトラブルシューティング方法を示します。 詳細については、『Cisco Service Control Application for Broadband リファレンス ガイド、リリース 3.8.x』の「raw データ レコード: フォーマットおよびフィールドの内容」を参照してください。

  1. RDR が属するカテゴリを確認します。 デフォルトでは、LUR はカテゴリ 1 に属しています。

    : rdr-mapping の設定をカスタマイズできますが、リロード後にはカスタマイズした設定はデフォルトに戻ります。

    rdr-mapping を検査するコマンドは次のとおりです。

    sce2#show  rdr-formatter rdr-mapping  all | in 0xf0f0f005
    0xf0f0f005 1
  2. SCE が正しい CM に接続しており、カテゴリ 1 RDR をドロップなしで送信していることを確認します。

    sce2#show rdr-formatter connection-status
    Connection is: up
    Forwarding mode: multicast
    Connection Table:
    -----------------------------------------------------------------
    |Collector  |Port |Status|Priority per Category:                 |
    |IP-Address |     |      |---------------------------------------|
    |Host-Name  |     |      |Category1|Category2|Category3|Category4|
    |-----------|-----|------|---------|---------|---------|---------|
    |10.61.17.20|33000| up   |100      | 100     | ---     | ---     |
    -----------------------------------------------------------------

    sce2#show rdr statistics
    RDR-formatter statistics:
    =========================
    Category 1:
    sent: 22597987
    in-queue: 0
    thrown: 0
    format-mismatch: 0
    unsupported-tags: 0
    rate: 207 RDRs per second
    max-rate: 335 RDRs per second
    ....
  3. SCE の時刻とタイムゾーンの設定が正しいことを確認します。 RDR のタイムスタンプは SCE に基づいています。 必要に応じてタイムゾーンの情報を変更するには、コンフィギュレーション モードで「clock timezone」を使用します。

  4. CM ステータスを確認します。

    bash-3.2$ ./alive.sh
    STATUS OK. CM is functioning
    -bash-3.2$
  5. CM およびキュー コンフィギュレーション ファイルを調べ、カテゴリ 1 RDR が Java Database Connectivity Adapter(JDBCAdapter)に送信されることを確認します。

    adapter.1=com.cisco.scmscm.adapters.jdbc.JDBCAdapter

    adapter.2=com.cisco.scmscm.adapters.CSVAdapter

    adapter.3=com.cisco.scmscm.adapters.topper.TAAdapter
    [dbase-hi]
    adapter_id=1

    priority=3

    warning_size=40000

    maximum_size=50000

    tags=4042321936,4042321922,4042321925,4042321924,4042322000,4042323052,

    4042321926,4042322064,4042321928,4042322048,4042321927
  6. CM データベースのタイプとバージョンを確認します。

    -bash-3.2$ ./cm dbversion
    MySQL 5.0.45

    or

    -bash-3.2$./get_cm_info.sh
    Collection Manager version:
    CM CD Version 3.8.5 Build 14
    Collection Manager DB type/version:
    CM database:
    MySQL 5.0.45
    詳細については、『Cisco Collection Manager リリース 3.8.x リリース ノート』の「サポートされている外部データベース」を参照してください。

  7. opt\CM\cm\logs にある CM JDBCAdapter ログを調べます。

    次のエラー ログの例は、ログ ファイル全体を示しています。 -bash-3.2$ ./dbtables.sh コマンドを実行すると、同様のエラーが返されます。

    2013-04-16 08:35:51,699 [main] 
    ERROR com.cisco.scmscm.db.JdbcConnection.RPT_SUR - JdbcConnection -
    sleeping 30 sec, got SQLException again - JZ006: Caught IOException:
    java.net.ConnectException: Connection refused
  8. CM データベース接続ウィザードを再実行して、CM サービスを再起動します。

    -bash-3.2$ ./dbconf.sh
    Enter the DB type:
    1 - Oracle
    2 - MySQL
    3 - Sybase
    4 - exit
    Enter your choice: 2
    Enter MySQL server host (current is localhost) :
    Enter MySQL server listening port (current is 3306) :
    Enter MySQL server instance id (current is apricot) :
    Enter CM schema user name (current is pqb_admin) :
    Enter CM schema user password (current is pqb_admin) :
    Testing the DB connection...
  9. ./dbtables.sh を使用してデータベース接続を検証し、テーブル タイムスタンプが更新されていることを確認します。 この場合、テーブル RPT_LUR のタイムスタンプは、アップグレード後に更新されていません。

    -bash-3.2$ ./dbtables.sh
    Executing query for CM Tables...
    name    |min_time             |max_time             |

    --------+---------------------+---------------------+

    RPT_SUR |                    -|                    -|

    RPT_LUR |2013-03-17 00:00:12.0|2013-04-16 01:15:24.0|

    RPT_VLUR|                    -|                    -|

    RPT_PUR |2013-03-17 00:00:16.0|2013-04-16 01:15:30.0|

    RPT_TR  |2013-03-16 23:59:52.0|2013-04-16 01:16:18.0|

    RPT_FUR |                    -|                    -|
  10. JDBCAdapter ログを再度調べます。 このようなエラーは、CM がデータベースへの挿入(RDR)操作を実行できなかったことを示します。

    2013-04-16 10:42:47,356 [wrkr/JDBCAdapter] 
    ERROR com.cisco.scmscm.db.DbInserter.RPT_TR - insert err - Exception
    while inserting the rdr values [27.110.229.154@TCB_Batch10, 26, 112,
    1204, 9, 295166279, 443, , , 460252570, 49745, 0, 1366081430, 59670, 0,
    2424, 4787, 0, 0, 23, 6, 251854848, 0, 0, 0, 0, , ], for the rdr
    tag = 4042321936
    java.lang.ArrayIndexOutOfBoundsException
    2013-04-16 10:42:47,356 [wrkr/JDBCAdapter]
    ERROR com.cisco.scmscm.db.DbInserter.RPT_TR - insert err (more details
    in next line), tag=4042321936, fieldNo-1=25 curSqlIndex=28, i=27
    java.lang.ArrayIndexOutOfBoundsException
    2013-04-16 10:42:47,357 [wrkr/JDBCAdapter]
    ERROR com.cisco.scmscm.adapters.jdbc.JDBCAdapter - processRDR - got
    Throwable
    java.lang.ArrayIndexOutOfBoundsException
    2013-04-16 10:42:47,357 [wrkr/JDBCAdapter]
    ERROR com.cisco.scmscm.db.DbInserter.RPT_TR - insert err - Exception
    while inserting the rdr values [27.110.210.197@TCB_Batch21, 48, 84, 40,
    18, 1120172119, 80, , , 460247749, 57178, 0, 1366081430, 620, 0, 1125,
    759, 5, 9, 42, 6, 184681216, 0, 0, 0, 0, , ], for the rdr tag = 4042321936
    java.lang.ArrayIndexOutOfBoundsException
    2013-04-16 10:42:47,357 [wrkr/JDBCAdapter]
    ERROR com.cisco.scmscm.db.DbInserter.RPT_TR - insert err (more details
    in next line), tag=4042321936, fieldNo-1=25 curSqlIndex=28, i=27
    java.lang.ArrayIndexOutOfBoundsException
    2013-04-16 10:42:47,357 [wrkr/JDBCAdapter]
    ERROR com.cisco.scmscm.adapters.jdbc.JDBCAdapter - processRDR - got
    Throwable
  11. ディスクとデータベースに十分なスペースがあることを確認します。

    -bash-3.2$ df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/cciss/c0d0p3 14G 12G 1.1G 92% /
    /dev/cciss/c0d0p7 15G 1.4G 13G 10% /var
    /dev/cciss/c0d0p6 29G 4.9G 23G 19% /opt
    /dev/cciss/c0d0p5 70G 56G 9.6G 86% /opt/MySQL
    /dev/cciss/c0d0p1 99M 12M 82M 13% /boot
    tmpfs 3.9G 0 3.9G 0% /dev/shm

    bash-3.2$ ./dbfree.sh 
    SCHEMA_NAME|TOTAL_TABLES|DATA_USED_IN_MB|MAX_DATA_LENGTH_IN_MB|

    -----------+------------+---------------+---------------------+

    apricot    | 20         |44259.73       |118472377892863.98   |
  12. データベースの破損や更新されなかったスキーマなど、MySQL データベースに関連する問題を取り除くため、新しい MySQL データベースをテスト目的で作成します。 MySQL root ログインが必要です。

    1. MySQL に接続します。

      bash-3.2$ mysql -u root -p
      Enter password:
      Welcome to the MySQL monitor. Commands end with ; or \g.
      Your MySQL connection id is 203
      Server version: 5.0.45 Source distribution

      Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    2. 現在のデータベースを表示します。

      mysql> show databases;
      +--------------------+
      | Database |
      +--------------------+
      | information_schema |
      | apricot |
      | cacti |
      | mysql |
      | test |
      +--------------------+
      5 rows in set (0.01 sec)
    3. 「apricot1」という名前の新しいデータベースを作成します。

      mysql> CREATE DATABASE apricot1;
    4. データベースが作成されたことを確認します。

      mysql> show databases;
      +--------------------+
      | Database |
      +--------------------+
      | information_schema |
      | apricot |
      | apricot1 |
      | cacti |
      | mysql |
      | test |
      +--------------------+
      6 rows in set (0.01 sec)
    5. pqb_admin ユーザにデータベース アクセス許可を付与します。

      mysql> grant all privileges on *.* to 'pqb_admin'@'localhost' 
      identified by 'pqb_admin' with grant option; Query OK, 0 rows
      affected (0.00 sec)

      mysql> grant all privileges on *.* to 'pqb_admin'@'localhost'
      identified by 'pqb_admin' with grant option; Query OK, 0 rows
      affected (0.00 sec)

      mysql> grant all privileges on *.* to 'pqb_admin'@'10.61.17.20'
      identified by 'pqb_admin' with grant option; Query OK, 0 rows
      affected (0.00 sec)
  13. CM データベース接続ウィザードを再実行して新しいデータベースに接続し、CM サービスを再起動します。

    -bash-3.2$ ./dbconf.sh
    Enter the DB type:
    1 - Oracle
    2 - MySQL
    3 - Sybase
    4 - exit
    Enter your choice: 2
    Enter MySQL server host (current is localhost) :
    Enter MySQL server listening port (current is 3306) :
    Enter MySQL server instance id (current is apricot) :apricot1
    Enter CM schema user name (current is pqb_admin) :
    Enter CM schema user password (current is pqb_admin) :
    Testing the DB connection...
  14. 新しいデータベース(apricot1)内に適切なテーブルが作成されていることを確認します。

    mysql> user  apricot1;
    Database changed
    mysql> show tables;
    +-----------------------------+
    | Tables_in_apricot1 |
    +-----------------------------+
    | CONF_SE_TZ_OFFSET |
    | IMEI_DEVICETYPE |
    | RPT_FUR |
    | RPT_GUR |
    | RPT_LUR |
    | RPT_MALUR |
    | RPT_MEDIA |
    | RPT_PUR |
    | RPT_SPAM |
    | RPT_SUR |
    | RPT_TOPS_PEAK_CUMULATIVE |
    | RPT_TOPS_PEAK_PERIOD |
    | RPT_TOPS_PERIOD0 |
    | RPT_TOPS_PERIOD0_CUMULATIVE |
    | RPT_TOPS_PERIOD1 |
    | RPT_TOPS_PERIOD1_CUMULATIVE |
    | RPT_TR |
    | RPT_VLUR |
    | RPT_ZUR |
    +-----------------------------+
    19 rows in set (0.00 sec)
    SQL 構文を十分に理解している場合は、たとえば SQL を使用して特定のテーブルの内容とそのタイムスタンプを確認することができます。

    mysql> slect       select * from RPT_LUR
  15. CM からデータベースへの接続を再度調べると、テーブル max_time が更新されていることがわかります。

    -bash-3.2$ ./dbtables.sh
    Executing query for CM Tables...
    name    |min_time             |max_time             |

    --------+---------------------+---------------------+

    RPT_SUR |                    -|                    -|

    RPT_LUR |2013-04-16 12:15:12.0|2013-04-16 12:16:24.0|

    RPT_VLUR|                    -|                    -|

    RPT_PUR |2013-04-16 12:15:16.0|2013-04-16 12:16:30.0|

    RPT_TR  |2013-04-16 12:15:16.0|2013-04-16 12:16:18.0|

    ...
  16. SCA BB レポーターを新しいデータベース(apricot1)に設定するために、[Preferences > [Reporter] > [Databases] > [Add] > [Advanced] に移動します。 以前の JDBC 接続と同じ URL を使用し、データベース名を apricot から apricot1 に変更します。

  17. [Activate] > [Test Active DB] に移動し、4 つのテストにすべて合格していることを確認します。

    CM SQL 挿入操作が失敗した原因は、CM アップグレード中に、接続またはクレデンシャルの問題が発生しており、MySQL データベース apricot スキーマが適切にアップグレードされなかったことにあります。

    Updating DB objects ...
    ...
    The following problem occured during DB operation:
    JZ006: Caught IOException: java.net.ConnectException: Connection refused
    Error: DB schema update failed. Fix the problem and rerun the upgrade procedure
    Done
    Removing the backuped config ...
    Done
    Done upgrade


Document ID: 116112