我正在尝试使用标准方式使用jdbc连接到Informix数据库服务器:
connection = DriverManager.getConnection("jdbc:informix-sqli://"+ip+
/"+sid+":INFORMIXSERVER="+server+";user="+user+";password="+pass+"");
但是它一直尝试连接并且不会抛出错误消息(我想它尝试连接是因为它什么都不显示)。我正在使用IBM Informix驱动程序4.10.00.1534和Java
1.7。到目前为止,我一直使用这种方法连接到Informix服务器,实际上,只有一台服务器失败。我可以使用odbc通过Informix客户端连接到该服务器,但是它在使用jdbc时一直失败,没有错误消息。
有没有什么方法来详细说明jdbc连接?关于它为什么失败的任何建议?
更新:sqlidebug跟踪:
C->S (4)
SQ_VERSION
SQ_EOT
S->C (14)
SQ_VERSION
"7.31.TD6" [8]
SQ_EOT
C->S (66)
SQ_INFO
INFO_ENV
Name Length = 12
Value Length = 8
"DBTIME"="%d/%M/%Y"
"DBTEMP"="/tmp"
"SUBQCACHESZ"="10"
INFO_DONE
SQ_EOT
S->C (2)
SQ_EOT
C->S (16)
SQ_DBOPEN
"database" [8]
NOT EXCLUSIVE
SQ_EOT
S->C (28)
SQ_DONE
Warning..: 0x15
# rows...: 0
rowid....: 0
serial id: 0
SQ_COST
estimated #rows: 1
estimated I/O..: 1
SQ_EOT
C->S (78)
SQ_PREPARE
# values: 0
CMD.....: "select site from informix.systables where tabname = ' GL_COLLATE'" [65]
SQ_NDESCRIBE
SQ_WANTDONE
SQ_EOT
并且jdbctrace.log说:
trying com.informix.jdbc.IfxDriver
SQLWarning: reason(Database selected) SQLState(01I04)
SQLWarning: reason(Float to decimal conversion has been used) SQLState(01I05)
SQLWarning: reason(Database has transactions) SQLState(01I01)
SQLWarning: reason(Database selected) SQLState(01I04)
SQLWarning: reason(Database has transactions) SQLState(01I01)
SQLWarning: reason(Database selected) SQLState(01I04)
尝试运行连接Informix数据库的代码,但还会显示完整的异常信息并创建跟踪文件。一个跟踪文件用于JDBC,一个跟踪文件用于Informix。将URL更改为数据库,用户名和密码,然后运行它。您可能会在屏幕上或跟踪文件中看到问题:
import java.io.FileWriter;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
class informix_trace
{
public static void main(String[] args)
{
try
{
Class.forName("com.informix.jdbc.IfxDriver");
FileWriter fwTrace = new FileWriter("c:\\JDBCTrace.log");
PrintWriter pwTrace = new PrintWriter(fwTrace);
DriverManager.setLogWriter(pwTrace);
String debug_url = "SQLIDEBUG=C:\\sqlidebug.trace";
String url = "jdbc:informix-sqli://1.2.3.4:9088/test_db:informixserver=ol_testifx;DB_LOCALE=pl_PL.CP1250;CLIENT_LOCALE=pl_PL.CP1250;charSet=CP1250;" + debug_url
Connection connection = DriverManager.getConnection(url, "user", "passwd");
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("SELECT FIRST 1 DBINFO('version','full') FROM systables;");
while (resultSet.next())
System.out.println(resultSet.getObject(1));
}
catch (Exception e)
{
e.printStackTrace();
}
}
} // class informix_trace
Informix跟踪文件将带有一些后缀(时间戳或类似信息),在我的情况下,它类似于sqlidebug.trace1391758523500.0
。它是二进制的,但是您可以使用sqliprt
实用程序对其进行分析。
错误数据库名称的会话示例:
c:\>sqliprt sqlidebug.trace1391758523500.0
SQLIDBG Version 1
...
S->C (12)
SQ_ERR
SQL error..........: -329
ISAM/RSAM error....: -111
Offset in statement: 0
Error message......: "" [0]
SQ_EOT
在其中JDBCTrace.log
可以找到更多有趣的信息(在屏幕上也可以看到):
SQLState(IX000) vendor code(-111)
java.sql.SQLException: ISAM error: no record found.
at com.informix.util.IfxErrMsg.getSQLException(IfxErrMsg.java:413)
at com.informix.jdbc.IfxSqli.E(IfxSqli.java:3412)
at com.informix.jdbc.IfxSqli.dispatchMsg(IfxSqli.java:2324)
....
at java.sql.DriverManager.getConnection(Unknown Source)
at informix_trace.main(informix_trace.java:20)
getConnection failed: java.sql.SQLException: No database found or wrong system privileges.
(我已将其翻译成波兰语,因此可能会有所不同)
我正在阅读神经网络和深度学习(前两章),我正在尝试跟进并构建自己的ANN以从MNIST数据集中对数字进行分类。 我已经抓耳挠腮好几天了,因为我的实现在从测试集中分类数字时达到了约57%的准确率(有些5734/10000)在10个纪元后(训练集的准确率在第10个纪元后停滞不前,测试集的准确率可能会因为过度拟合而恶化)。 我使用与书中几乎相同的配置:所有层完全连接的2层前馈ANN(784-30-10)
我正在使用项目Reactor,我有一个很长的流程,其中我得到了一个异常(当使用Jackson解析字符串到json时)。问题是,即使我使用 流量不会继续。我确实看到了错误日志,流没有抛出异常,但流不会继续执行。发生这种情况的原因是什么? 当我将代码更改为(不需要的)时,数据管道不会停止:
我正在调试一个普通的Java应用程序,没有GUI,只是在出现问题时对主线程进行大量计算和~5次调用。基本上,它一直在局部变量表中显示“收集数据”。 以前有人遇到过这个问题吗?更改调试器是解决这个问题的唯一方法吗?
我正在尝试使用拖放移动滑块。它识别元素并单击它,之后什么也没发生,我的代码本身就卡在那里(就像等待用户输入)。只要我手动移动鼠标一点点,它就会执行其余的代码并按预期工作。请帮帮我这是什么奇怪的行为。?。下面是我用来构建拖放的代码。 “Waiting”消息打印得很好,但它没有打印“notwaiting”,因为它卡在了“secondSlide.perform()”行中。但只要我手动移动鼠标一点点,它就
当我通过卡布局切换到另一个JPanel时,我遇到了一个卡住的精灵的问题。 现在..从屏幕切换的角度来看,一切都正常..但我的播放器精灵在切换后会卡在屏幕上,但在初始加载时,我可以用箭头键移动精灵。我不确定在新的视图上忽略播放器是否是罪魁祸首..但是我有一种感觉..想不出我做错了什么.. 玩家是这样的: 导入导入 java.awt.Rectangle;import java.awt.event.Ke
我正在尝试使用ecs-cli命令行在AWS上获得一个工作的Docker环境。 我有一个使用Dockerfiles、docker-compose.yml、一个.env文件和一个entrypoint.sh脚本的工作本地Docker环境。容器是一个运行PHP和一系列扩展的apache webserver以及一个MySQL DB。 骨架文件结构是这样的: ./docker/webserver/entryp