Seiji Sogabe authored on 3 Aug 2015
RuleSet rollback 1 year ago
aqadmin Merge branch 'master' of http://gitbucket.buildria.com/git/sogabe/aqutils 1 year ago
aqmsg null property should not import due to JMS-119 1 year ago
lib First import 1 year ago
package added NOTICE.txt 1 year ago
src/main/resources added license header to codes 1 year ago
.gitignore added package module 1 year ago
README.md システム必要要件を追加 1 year ago
pom.xml jta,jar should be bundled 1 year ago
README.md

Oracle AQ Utilities

Oracle AQ Utilitiesは、Oracle AQのキューの管理を行うaqadmin、メッセージの管理を行うaqmsgの2つのツールからなるツール群です。

Build Status

システム要件

  • Java SE 7以上が必要です。
  • Oracle JDBCドライバおよびAQ APIが必要です。

インストール

  • ここ から、aqutils-bin,zipをダウンロードします。

  • aqutils-bin.zipを展開します。

aqutils/
       aqrc
       bin/
             aqadmin
             aqadmin.bat
             aqmsg
             aqmsg.bat
       doc/
             aqadmin/   
                    createQ.md
                        :
             aqmsg/
                    browseQ.md
                        :
             licenses/
                        :  
       lib/
             aqadmin-1.0-SNAPSHOT.jar
             aqmsg-1.0-SNAPSHOT.jar
              :
       etc/
  • オラクルのaqapi.jarとojdbc7.jarをetcに配置します。

  • キューに登録するメッセージがObjectMessageの場合、そのオブジェクトのクラスを含んだjarファイルを、etcに配置します。

  • aqrcを環境に合わせて修正します。

ツールの実行

  • Linux/Unix環境の場合、bin/{aqadmin, aqmsg}を起動します。
 $ bin/aqadmin listQ
  • Windows環境の場合、bin/{aqadmin.bat, aqmsg.bat}を起動します。
 $ bin/aqadmin.bat listQ

各ツールの仕様

各ツールの仕様については、下記を参照して下さい。

  • aqadmin
  • aqmsg

    ビルド

    ビルドする前に、libにあるバッチファイルを実行し、OracleのJDBCドライバをMavenのリポジトリに登録してください。
  $ mvn clean install

参考

キューにメッセージがないことを確認後停止するシェルスクリプト

#!/bin/sh

QUEUE=MY_QUEUE

while true; do
  count=`bin/aqmsg countQ ${QUEUE}`
  if [ $count = "0" ]; then
    break
  fi
  echo "waiting for $count messages."
  sleep 30
done

echo "Stopping ${QUEUE}..."
bin/aqadmin stopQ ${QUEUE} -y
if [ $? = 0 ]; then
  echo "Successfully stopped."
else
  echo "Error!"
fi

キューにメッセージがないことを確認後停止するバッチスクリプト

@echo off

set QUEUE=MY_QUEUE

pushd %~dp0

:LOOP
  for /f %%i in ('bin\aqmsg.bat countQ %QUEUE%') do @set count=%%i
  if %count% == 0 (
    goto STOP    
  )
  
  echo waiting for %count% messages.
  ping 127.0.0.1 -n 30 > nul
  goto LOOP
  
:STOP
  call bin\aqadmin.bat -y stopQ %QUEUE%
  if ERRORLEVEL 0 (
    echo Successfully stopped.
  ) else (
    echo Error!
  )