ODBCドライバー(バージョン2.0.4.155)を使用してFirebird DBに接続するSSISジョブで問題が発生しています。
データソース名が見つからず、デフォルトのドライバーが指定されていません。
これはすぐに、ODBCドライバーの不一致がSSISが32ビットドライバーを探している場合の問題である可能性があると思いました。
SQLサーバーにログインしている限り(Firebirdドライバーをインストールするためにログインしている間)、パッケージを再度実行できます。 SQL Server Management Studioの削除接続からでも実行できますが、サーバーからログオフしない限りは可能です。
サーバーからログオフすると、SSIジョブは機能しなくなります(以前と同じエラー)。これにより、これは実際には32/64ビットのミスマッチではないと思いましたが、権限が不十分であるためにサーバーからログオフした後、おそらくレジストリまたは環境変数がコミットされていませんそのサーバー)。
だから私の次のテストのために:
そのSQLサーバーからログオフするとすぐに、動作が再び発生しました。ドライブはエラーをスローせずにインストールされ、最初は機能するため、最初はトラブルシューティングが困難でした。
しかし、私はこれが許可に関係していることを確信しています。私が見逃しているかもしれないアイデアはありますか?
ここでの問題は、システムDSNを作成する必要があったことです。これは、SSISジョブがユーザーDSNが存在するアカウントで実行されるようにスケジュールされており、サーバーにログインしている限り機能するため、実際には奇妙ですアカウント。とにかく、ユーザーDSNが機能しなかった理由を理解するのに疲れすぎています。そこで、代わりにシステムDSNを使用することにしました。
(反対に)システムDSNに反対しているわけではありませんが、このユーザーDSNを設定したのは私ではなく、システムDSNを作成するために使用された資格情報のパスワードがわかりません。だから少しクリエイティブにならなければなりませんでした。
レジストリエディターとメモ帳を使用して、ユーザーDSNをシステムDSNに変換する必要がありました。ここに私がそれをした方法があります:
上記のプロセスでは、基本的にすべてのユーザーDSNエントリをシステムDSNエントリとしてコピーします。エントリを1つだけコピーする場合は、。\ ODBC.INIの下にある対応するキーと、。\ ODBC.INI\ODBCデータソース内の対応するエントリを削除する必要があります。