用Java可以做到吗?连接字符串中的主机无法解析,因此在能够在连接上调用getMetaData之前,我在DataSource的getConnection()中获取了SQLException。
这是我的代码:
DataSource ds = null;
Connection connection = null;
DataSourceProbeRequest request = null;
try {
request = (DataSourceProbeRequest) probeRequest;
ds = request.getDataSource();
connection = ds.getConnection();
final boolean validConnection = connection != null && connection.isValid(5000);
if (validConnection) {
LOGGER.info("Connection is ok: " + request.getTargetId());
return new ProbeResult(request.getTargetId(), buildDatasourceMsg(connection, true));
} else {
return new ProbeResult(request.getTargetId(), new Exception(buildDatasourceMsg(connection, false)));
}
} catch (Exception exp) {
return new ProbeResult(request.getTargetId(), exp);
} finally {
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
LOGGER.warn("Failed to close database connection", e);
}
}
}
由于主机不可访问,connection = ds.getConnection();
将引发异常并导致new ProbeResult(request.getTargetId(), exp)
返回。但是,该异常仅具有诸如之类的错误消息IO Error: The Network Adapter could not establish the connection
。它没有在连接字符串中给出主机名。我想显示主机名(或连接字符串)以便可以对其进行诊断
这是来自Oracle的愚蠢错误消息。网络适配器不建立连接。TCP。而且,正如您所说,它隐藏了所有重要信息。
但是,通过追踪detail
原始异常中的链,可以进一步了解调用堆栈。某个地方应该ConnectException
带有您想要的消息。
问题内容: 我正在尝试连接Java中的字符串。为什么这不起作用? 问题答案: 你可以使用运算符来连接字符串: 被隐式转换为。
我已经用SQL Server Management Studio创建了一个数据库,现在我想在我的C#应用程序中使用它。我需要连接字符串? 如何发布数据库,以便Visual Studio可以获取它?然后我就可以拉出那里的连接字符串了?
问题内容: 如何在Swift中连接字符串? 在我们喜欢 要么 但是我想用Swift语言做到这一点。 问题答案: 您可以通过多种方式连接字符串: 您也可以这样做: 我相信还有更多方法。 描述位 创建一个常数。(有点像)。设置后就无法更改其值。您仍然可以将其添加到其他东西并创建新变量。 创建一个变量。(有点像),因此您可以更改其值。 注意 在现实中,并有 很大的不同 ,从和,但它可以帮助类比。
问题内容: 我使用的是Oracle 10g,并具有以下表结构:id,段落 我想按ID分组并连接段落。每个段落可能超过1500个字符。 当我尝试wm_concat函数时,它抱怨字符串缓冲区太小。实际上,我在Oracle网站上尝试了许多示例,但所有示例均因字符串缓冲区太小而失败。 我该如何解决? 问题答案: 因此,我猜是错误的所在,我可以看到您在这种情况下如何认为这不适用于您。 但是,这是的错。这是一
问题内容: 如何在python中连接字符串? 例如: 将其与形成字符串: 问题答案: 最简单的方法是 但为了提高效率,请参阅:https : //waymoot.org/home/python_string/
问题内容: 我使用来了解Java与运算符的工作方式。 它是用同样的操作? 问题答案: 不。使用和做不一样。 在Java中,字符串实例是不可变的。 因此,如果您这样做: 每次连接时都在创建新的字符串。 另一方面,StringBuilder就像一个缓冲区,可以在追加新Strings时根据需要增长。 经验法则是(由于我的评论而改变): 如果要进行大量连接(例如,在循环内进行连接,或生成由多个字符串连接的