teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

PATH導通について追記

2020/11/02 04:19

投稿

Hogeike
Hogeike

スコア293

title CHANGED
File without changes
body CHANGED
@@ -47,6 +47,8 @@
47
47
  LinuxのSQL Anywhereインストールファイルにある`sajdbc4.jar`を使用したらこのエラーが出ました。
48
48
  このエラーについては探してもなかなか出てこないので困っています。
49
49
 
50
+ PATHとLD_LIBRARY_PATHに、bin64とlib64を通してあります。
51
+
50
52
  ### 補足情報(FW/ツールのバージョンなど)
51
53
 
52
54
  JRE: 11.0.8
@@ -62,4 +64,4 @@
62
64
 
63
65
  `sajdbc4.jar`にパスが通っていないのではと推測
64
66
  Linuxにインストールされたsajdbcにはパスが通っているはずなので、本来であればそこを直接参照したいが、今回はWindowsで開発したものをLinuxに持ってきているので、classpathで直接指定するのが難しい。
65
- そこで、外部jarを外出ししてjarエクスポートして、作成されたライブラリディレクトリにパスを通してみたが、エラーは変わらなかった。
67
+ そこで、外部jarを外出ししてjarエクスポートして、作成されたライブラリディレクトリにPATHとLD_LIBRARY_PATHを通してみたが、エラーは変わらなかった。

3

追記1

2020/11/02 04:19

投稿

Hogeike
Hogeike

スコア293

title CHANGED
File without changes
body CHANGED
@@ -50,4 +50,16 @@
50
50
  ### 補足情報(FW/ツールのバージョンなど)
51
51
 
52
52
  JRE: 11.0.8
53
- SQL Anywhere: 17
53
+ SQL Anywhere: 17
54
+
55
+
56
+ ---
57
+
58
+ # 追記1
59
+
60
+ こちらの記事を参考に
61
+ - [Having trouble connection to SQL Anywhere 17 with sajdbc4.jar driver - SQLA Forum](https://sqlanywhere-forum.sap.com/questions/27890/having-trouble-connection-to-sql-anywhere-17-with-sajdbc4jar-driver)
62
+
63
+ `sajdbc4.jar`にパスが通っていないのではと推測
64
+ Linuxにインストールされたsajdbcにはパスが通っているはずなので、本来であればそこを直接参照したいが、今回はWindowsで開発したものをLinuxに持ってきているので、classpathで直接指定するのが難しい。
65
+ そこで、外部jarを外出ししてjarエクスポートして、作成されたライブラリディレクトリにパスを通してみたが、エラーは変わらなかった。

2

接続文字列を完全にマスクしてしまっていたのを修正

2020/11/02 02:43

投稿

Hogeike
Hogeike

スコア293

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- JavaからJDBCでSQL AnywhereのDBにクエリ投げるプログラムを作成しました。
3
+ JavaからJDBCでSQL AnywhereのDBにクエリ投げるプログラムを作成しました。
4
4
  Windowsで開発し、JarにエクスポートしたものLinuxサーバで稼働させようとしています。
5
5
  Windowsでは問題なく接続できましたが、Linuxでjarを実行したところ、エラーが出てしまいました。
6
6
  エラーの解消方法を教えてください。
@@ -21,7 +21,7 @@
21
21
  ```java
22
22
  public class DatabaseAccess {
23
23
  public static void main(String[] args) {
24
- String url = "****";
24
+ String url = "jdbc:sqlanywhere:Server=*********;DBN=*********;host=**.**.**.**:****;";
25
25
  String uid = "****";
26
26
  String pwd = "****";
27
27
  Connection connection = null;

1

修正

2020/10/30 06:25

投稿

Hogeike
Hogeike

スコア293

title CHANGED
@@ -1,1 +1,1 @@
1
- エラー:sajdbc.jar のビルが共有オブジェクトのビドと一致しません
1
+ Linuxでsajdbc4を使用したSQL Anywhere接続時のエラー:無効な ODBC ハンドルです
body CHANGED
@@ -8,7 +8,7 @@
8
8
  ### 発生している問題・エラーメッセージ
9
9
 
10
10
  ```
11
- java.sql.SQLException: sajdbc.jar のビルが共有オブジェクトのビドと一致しません
11
+ java.sql.SQLException: 無効な ODBC ハンドルです
12
12
  at sap.jdbc4.sqlanywhere.IDriver.makeODBCConnection(Native Method)
13
13
  at sap.jdbc4.sqlanywhere.IDriver.connect(IDriver.java:775)
14
14
  at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
@@ -43,17 +43,10 @@
43
43
  ```
44
44
 
45
45
  ### 試したこと
46
+ Windows側の`sajdbc4.jar`を使用したら別のエラーが出てしまっていたので、
47
+ LinuxのSQL Anywhereインストールファイルにある`sajdbc4.jar`を使用したらこのエラーが出ました。
46
- とりあえず調べた結果、公式にこのよう記事がありした
48
+ このエラーについては探してもかなか出てこないので困ってい
47
- [EBF の適用時、JDBC アプリケーションが実行されていないことを確認](http://dcx.sybase.com/1201/ja/sachanges/upgrading-troubleshooting-jdbc.html)
48
49
 
49
- でもこれは、EBFを使うと一部ファイルがアップデートされないせいで云々というはなしだったので、EBFが何かはよくわかっていないのですが、たぶん違う問題だと認識しています。
50
-
51
- 単純にLinux側にパスの設定などが足りていないんだと思ったのですが、bin64、lib64にそれぞれPATHは通っています。
52
- ```
53
- export PATH=/opt/sqlanywhere17/lib64:/opt/sqlanywhere17/bin64
54
- export LD_LIBRARY_PATH=/opt/sqlanywhere17/bin64:/opt/sqlanywhere17/lib64
55
- ```
56
-
57
50
  ### 補足情報(FW/ツールのバージョンなど)
58
51
 
59
52
  JRE: 11.0.8