CData JDBC Driver for Sybase で Ignition SCADA と連携
Ignition は、Inductive Automation 社が提供する産業用の SCADA(監視制御およびデータ収集)および IIoT(産業用モノのインターネット)プラットフォームです。中核となる Gateway サービスが、デバイス接続やタグ、データベース接続を一元的に管理します。ただし、Ignition には Sybase 用のコネクタが標準で用意されていません。そのため、Sybase のデータを扱うには、独自のミドルウェアを用意するか、手作業でデータをエクスポートするのが一般的です。
CData JDBC Driver for Sybase を使えば、この課題を解消できます。このドライバーは、Sybase を標準的な JDBC(Java Database Connectivity)データソースとして利用できるようにするものです。Ignition はどの JDBC ドライバーも標準のデータベース接続として扱えるため、Gateway にドライバーを登録するだけで、Script Console や SQL Bridge、タグ、Perspective / Vision の画面からリアルタイムの Sybase データをクエリできます。レプリケーションや独自コネクタ、ETL(抽出・変換・ロード)パイプラインは必要ありません。
この記事では、Ignition のインストールとコミッショニングから、CData JDBC Driver for Sybase の登録、接続の作成、リアルタイムクエリによる動作確認までの流れを順を追って紹介します。
前提条件
- Windows 版 Ignition(Windows 10/11 または Windows Server)と、Windows サービスをインストールするための管理者権限
- CData JDBC Driver for Sybase
- 有効な認証情報を持ち、API アクセスが有効化された Sybase アカウント
- Gateway の Web インターフェースを開くための対応デスクトップブラウザ(Google Chrome、Mozilla Firefox、Microsoft Edge、Safari のいずれか)
ステップ 1:Ignition のインストールとセットアップ
Ignition をすでにインストールして稼働させている場合は、ステップ 2 に進んでください。
Ignition のダウンロード
-
Inductive Automation のダウンロードページにアクセスし、Windows 版の Ignition をダウンロードします。
- このファイルひとつで Ignition Gateway のフルインストーラーになっています。Gateway サービスと Designer Launcher の両方が含まれているので、Designer を別途ダウンロードする必要はありません。
Ignition のインストール
- インストーラーを実行し、ライセンス契約に同意してインストール先を選択します。
- Windows の起動時に Gateway も自動で起動するよう、Install as a Windows Service にはチェックを入れたままにしておきます。
- インストールを完了すると Gateway サービスが起動し、ブラウザで http://localhost:8088 が開いてコミッショニングウィザードが表示されます。Browser Not Supported と表示された場合は、Chrome、Firefox、Edge、Safari のいずれかで同じアドレスを開いてください。
Gateway のコミッショニング
- Commission Ignition Gateway ウィザードで Gateway Name を設定し、管理者のユーザー名とパスワードを作成します。
- エンドユーザー使用許諾契約に同意し、トライアルを開始するか、購入済みの Ignition ライセンスをアクティベートします。
-
コミッショニングが完了したら、管理者アカウントでログインします。Gateway の Home ページが表示されます。
注意: トライアル版では Gateway の各ページにカウントダウンタイマーが表示され、Gateway サービスを再起動するとタイマーがリセットされます。テスト用途であれば問題ありませんが、本番環境で利用する場合はライセンスが必要です。
ステップ 2:Ignition への CData JDBC Driver の登録
Ignition では、サードパーティ製の JDBC ドライバーを Gateway の Web インターフェースからアップロードできます。ファイルシステムを直接操作する必要はありません。
- 管理者として Gateway にログインします。
- Connections > Databases > Settings に移動して Drivers タブを開き、Create JDBC Driver をクリックします。
-
ダイアログで次の内容を入力します。
- Name: Sybase
- Classname: cdata.jdbc.sybase.SybaseDriver
- Driver Type: Generic
- Default Validation Query: SELECT Id FROM Products LIMIT 1
- Create JDBC Driver をクリックします。現行の Ignition 8.3 では作成ダイアログに JAR(Java アーカイブ)ファイルのアップロード欄がないため、JAR ファイルは次の手順で追加します。
- 作成したドライバーの行の右端にあるメニューを開いて Manage JAR files を選択し、ドライバーのインストールディレクトリ内の lib フォルダにある cdata.jdbc.sybase.jar をアップロードして保存します。
-
ドライバー一覧で、ドライバーのステータスが INSTALLED になっていることを確認します。
ステップ 3:Sybase への接続の作成
- Connections > Databases > Connections に移動し、Create Database Connection をクリックします。
-
Driver Selection ステップで Sybase を選択し、Next をクリックします。
- Database Setup ステップで、Name に Sybase を設定します。認証情報は接続 URL に含めるため、Username は空欄のままにし、Password は None を選択します。
-
Connect URL に接続文字列を入力します。
jdbc:sybase:User=myuser;Password=mypassword;Server=localhost;Database=mydatabase;Charset=iso_1;
-
Create Database Connection をクリックし、Database Connections ページで接続のステータスが VALID になっていることを確認します。
Sybase の接続プロパティ
Sybase は、Basic 認証、Kerberos 認証、LDAP 認証などの認証方法をいくつかサポートしています。
Basic 認証を使用した接続
User およびPassword を設定し、SybaseIQ 認証で接続します。
- User:Sybase 認証に使用するユーザーの名前に設定。
- Password:認証Sybase ユーザーのパスワードに設定。
- Server:SybaseIQ またはSAP SQL Anywhere データベースインスタンスの名前またはネットワークアドレスに設定。
- Database:指定されたサーバーで実行されているSybaseIQ またはSAP SQL Anywhere データベースの名前に設定。
オプションで、UseSSL をtrue に設定することにより、TLS/SSL で接続を保護できます。
Note: 上記のCData 製品 設定でSAP SQL Anywhere のインスタンスに接続することもできます。
Kerberos 認証を使用した接続
Kerberos 認証を活用するには、次の接続プロパティを使用してそれを有効にすることから始めます。
- AuthScheme:Kerberos に設定すると、Sybase への認証に使用されます。
Kerberos 認証用に設定する必要がある接続プロパティに関しては、Kerberos の使用 情報を参照してください。
以下は接続文字列の例です。
Server=MyServer;Port=MyPort;User=SampleUser;Password=SamplePassword;Database=MyDB;Kerberos=true;KerberosKDC=MyKDC;KerberosRealm=MYREALM.COM;KerberosSPN=server-name
LDAP 認証を使用した接続
LDAP 認証で接続するには、LDAP 認証メカニズムを使用するようにSybase サーバーサイドを設定する必要があります。
LDAP 用にSybase を設定したら、Basic 認証と同じクレデンシャルを使用して接続できます。
注意: パスワードやトークンにセミコロンが含まれていると接続 URL が正しく解釈されません。その場合は、セミコロンを含まない値に再設定してください。
ステップ 4:Ignition からリアルタイムの Sybase データをクエリ
接続が有効になったら、Designer からリアルタイムの Sybase データをクエリしてみましょう。
-
Ignition Designer Launcher を開き、使用する Gateway を選択して Open Designer をクリックします(一覧に Gateway が表示されていない場合は、Add Designer をクリックして http://localhost:8088 を入力します)。Gateway の管理者アカウントでログインしてください。
-
プロジェクトを開くか、新規に作成します。Designer が開き、Project Browser、Tag Browser、Component Palette の各パネルが表示されます。
-
Designer で Tools > Script Console に移動します。Multiline Buffer にテストクエリを入力し、Execute をクリックします。Products の部分は、Sybase 接続で利用可能な任意のテーブルに置き換えてください。
print system.db.runQuery( "SELECT Id, ProductName FROM Products LIMIT 10", "Sybase")
- クエリが成功すると、Interactive Interpreter パネルに PyDataset rows:10 cols:2 と出力されます。これで、Ignition が CData JDBC Driver を介して Sybase からリアルタイムデータを取得できたことを確認できます。
注意: スクリプト内の接続名は、ステップ 3 で設定した接続名と一致させる必要があります。
ステップ 5:結果の検証
-
取得した行を出力し、Sybase 上の同じレコードと値を照合します。
ds = system.db.runQuery("SELECT Id, ProductName FROM Products LIMIT 10", "Sybase") for row in ds: print row["Id"], row["ProductName"] - 必要に応じて、別のテーブルへのクエリやフィルタ付きのクエリも実行し、スキーマの検出とフィルタリングが正しく機能することを確認します。
- 必要に応じて Gateway サービスを再起動し、接続のステータスが VALID に戻ることを確認します。
トラブルシューティング
| 症状 | 考えられる原因と対処法 |
|---|---|
| ドライバーのステータスが ERROR になる | クラス名が間違っているか、Manage JAR files から JAR ファイルがアップロードされていません。 |
| 接続のステータスが FAULTED になる | 認証情報が間違っている、外部への Web 通信(HTTPS)がブロックされている、または CData のライセンスが見つからないことが考えられます。ステータスをクリックしてエラー内容を確認してください。 |
| 「Could not find a valid license」エラーが表示される | Gateway は Windows サービスとして実行されているため、ユーザープロファイルに保存されたライセンスを読み取れません。管理者権限のコマンドプロンプトでドライバーの lib フォルダに移動して java -jar cdata.jdbc.sybase.jar --license を実行し、生成された .lic ファイルを C:\Windows\system32\config\systemprofile\.CData\ にコピーしてから、Gateway サービスを再起動してください。 |
| データベース接続が見つからない | スクリプト内の接続名が、Gateway の接続名と完全には一致していません。 |
Ignition 以外の環境でのドライバーのテスト
Gateway とは切り離してドライバー単体の動作を確認したい場合は、次のスタンドアロンの Java サンプルを実行してみてください。cdata.jdbc.sybase.jar と cdata.jdbc.sybase.lic は同じディレクトリに配置し、クラスパスに含めておく必要があります。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class CDataExample {
public static void main(String[] args) throws Exception {
Class.forName("cdata.jdbc.sybase.SybaseDriver");
String connectionString = "jdbc:sybase:User=myuser;Password=mypassword;Server=localhost;Database=mydatabase;Charset=iso_1;";
try (Connection conn = DriverManager.getConnection(connectionString)) {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT Id, ProductName FROM Products LIMIT 10");
while (rs.next()) {
System.out.println(rs.getString("Id") + ", " + rs.getString("ProductName"));
}
}
}
}
CData で Ignition にリアルタイムかつガバナンスの効いた Sybase 連携を
CData JDBC Driver for Sybase を登録すれば、ETL 基盤や手作業でのエクスポート、独自の連携コードを用意することなく、Ignition からリアルタイムの Sybase データをクエリできます。同じ接続をタグや SQL Bridge、Perspective / Vision の画面でも再利用できます。
無料トライアルで、CData を使って Ignition から数百もの外部システムへリアルタイムかつセキュアにアクセスできることを、ぜひお確かめください。