小编Man*_*pta的帖子

关闭池中的JDBC连接

我们使用JDBC的标准代码部分是......

Connection conn = getConnection(...);
Statement  stmt = conn.conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE,
                                                ResultSet.CONCUR_READ_ONLY);
ResultSet  rset = stmt.executeQuery (sqlQuery);

// do stuff with rset

rset.close(); stmt.close(); conn.close();
Run Code Online (Sandbox Code Playgroud)

问题1:使用连接池时,是否应该在结束时关闭连接?如果是这样,汇集失败的目的不是?如果没有,DataSource如何知道什么时候释放Connection的特定实例并且可以重用?我对这个有点困惑,任何指针都赞赏.

问题2:以下方法是否接近标准?看起来是尝试从池中获取连接,如果无法建立DataSource,请使用旧式DriverManager.我们甚至不确定哪个部分在运行时被执行.重复上面的问题,是否应该关闭连接出来的这种方法?

谢谢, - MS.

synchronized public Connection getConnection (boolean pooledConnection)
                                                        throws SQLException {
        if (pooledConnection) {
                if (ds == null) {
                        try {
                                Context envCtx = (Context)
                                        new InitialContext().lookup("java:comp/env");
                                ds = (DataSource) envCtx.lookup("jdbc/NamedInTomcat");
                                return ds.getConnection();
                        } catch (NamingException e) {
                                e.printStackTrace();
                }}
                return (ds == null) ? getConnection (false) : ds.getConnection();
        }
        return DriverManager.getConnection(
                "jdbc:mysql://"+ipaddy+":"+dbPort …
Run Code Online (Sandbox Code Playgroud)

java mysql connection-pooling jdbc

104
推荐指数
2
解决办法
8万
查看次数

Perl继承的首选约定是什么

在下面的示例中,我有3种不同的语法/机制来定义继承.所有这些都有效.有人能告诉我哪一个是首选的,为什么(是的,我知道"有更多......").另外,为什么我需要在1例中使用"WB"而不是其他2.使用TIA

主要的 -

#!/usr/local/bin/perl -w
#######################

use strict;
use River;
use Ocean;
use Lake;

my $pName = $0;         $pName =~ s/.*\///;     $pName =~ s/\.\w+$//;

my @sources = (Ocean->new ('Pacific', 1),
               River->new ('Brazos', 0),
               Lake->new ('Tahoe', 0) );
foreach (@sources) {
        $_->printIfSaline ($pName);
}
Run Code Online (Sandbox Code Playgroud)

模块(湖泊,河流和海洋继承自WaterBody):

######################
# File: Lake.pm
######################

package Lake;

use strict;
use WaterBody;
our @ISA = ('WaterBody');

sub new {
    my $class = shift;
    $class->SUPER::new(@_)
}

sub printIfSaline {
        my ($self, $prompt) = @_;
        my $name = $self->getName(); …
Run Code Online (Sandbox Code Playgroud)

syntax perl inheritance

13
推荐指数
3
解决办法
443
查看次数

使用DBCP进行Tomcat配置

我们在嘲笑了一段时间(几个小时)后得到了一个CommunicationsException(来自DBCP).错误消息(在Exception中)是在这个问题的结尾 - 但我没有看到在任何配置文件中定义wait_timeout.(我们应该在哪里看?在tomcat/conf目录之外的某个地方?).

其次,正如Exception所建议的那样,在哪里放置"Connector/J连接属性'autoReconnect = true'"?这是tomcat设置文件conf/context.xml中的资源定义:

<Resource name="jdbc/TomcatResourceName" auth="Container" type="javax.sql.DataSource"
           maxActive="100" maxIdle="30" maxWait="10000"
           removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"
           username="xxxx" password="yyyy"
           driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://127.0.0.1:3306/dbname?autoReconnect=true"/>
Run Code Online (Sandbox Code Playgroud)

第三,为什么JVM会等到executeQuery()调用抛出异常?如果连接超时,getConnection方法应该抛出异常,不应该吗?这是我正在讨论的源代码部分:

        try {
                conn = getConnection (true);
                stmt = conn.createStatement (ResultSet.TYPE_SCROLL_INSENSITIVE,
                                                ResultSet.CONCUR_READ_ONLY);
                rset = stmt.executeQuery (bQuery);
                while (rset.next()) {
                     ....
Run Code Online (Sandbox Code Playgroud)

最后,这里是Stack跟踪的前几行......

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 84,160,724 milliseconds ago.  The last packet sent successfully to the server was 84,160,848 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring …
Run Code Online (Sandbox Code Playgroud)

java mysql jdbc apache-commons-dbcp

9
推荐指数
1
解决办法
1万
查看次数

需要推荐Websphere教程

来自Apache-Tomcat背景,我需要在Websphere(v7)上做一些工作.必须说我被帮助部分的术语所震撼 - 一个"新项目"给了我17个选项,我不知道他们的意思; "Hello World"教程让我创建了一些我不知道如何使用的对象和结构(什么是中介,它如何帮助我编写客户端?).

一个示例问题:我想创建一个简单的Web服务 - 可以使用或不使用单词作为参数调用.如果没有参数,则会发回一个或多个列表,并将该列表中的单词作为参数,即其含义.Word不在列表中 - 错误消息消失.

我从哪里开始?我编写了wsdl,可以将类文件编写为servlet,但我想用Websphere方式,使用Eclipse/JUnit进行开发/测试.任何人都可以推荐一个解释类似步骤(简单性)的教程吗?我想学习EAR文件结构,脚本的位置和内容(如果使用它们)(如何/何时转换依赖项)和Xml编组,处理异常的级别,最佳日志记录实践,配置文件的位置是和什么可以配置等

如果教程没有涵盖上述所有内容,那就没关系,我只需要一个好的起点,以及我可以阅读和理解的材料.不需要商业模型或数据库访问的层/层,只需要简单易懂的东西.谢谢.

java websphere

9
推荐指数
1
解决办法
7377
查看次数

合并有序列表

请允许我用一个例子来问这个问题:假设我们有以下3个列表(为清楚起见,省略了双引号):

L1: (a, c, b, d, f, j)
L2: (b, e, j, k)
L3: (a, d, e, g, h, j, i)
Run Code Online (Sandbox Code Playgroud)

输出列表可能如下所示(还有更多解决方案)

Lanswer1: (a, c, b, d, e, f, g, h, j, i, k)
Lanswer2: (a, c, b, d, f, e, g, h, j, i, k)
Lanswer3: (a, c, b, d, e, f, g, h, j, k, i)
Run Code Online (Sandbox Code Playgroud)

总之,生成的有序集

  • 包含所有列表中元素的并集
  • 保留所有原始列表中的元素顺序.

第四个列表,L4:(b,c,d),当添加到输入时,应抛出异常(因为c在L1之前的b之前)

我通过检查得出了答案.任何人都可以建议一个算法来做到这一点?谢谢, - MS

java

6
推荐指数
1
解决办法
687
查看次数

如何强制tomcat重新加载最近编译的类/ war文件

我们在tomcat引擎上有一组正在运行的servlet.当我们编译一个java文件并构建war时,tomcat需要不确定的时间来重新加载它.有时3秒,有时30秒等.当前的解决方法是停止tomcat并使用shell脚本重新启动它.我们将autodeploy和reloadable标志设置为true,但它无法正常工作.知道如何实现这一目标吗?指针也很受欢迎.这是关于ubuntu的tomcat v6.0.20.

这是我们的conf/server.xml文件的摘录:

<Engine name="Catalina" defaultHost="localhost">

  <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
         resourceName="UserDatabase"/>

  <Host name="localhost"  appBase="webapps"
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">

    <DefaultContext reloadable="true">
    </DefaultContext>

    <!-- SingleSignOn valve, share authentication between web applications
         Documentation at: /docs/config/valve.html -->
    <!--
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
    -->

  </Host>
</Engine>
Run Code Online (Sandbox Code Playgroud)

java tomcat6

5
推荐指数
1
解决办法
1万
查看次数

什么是优秀的GUI测试人员?

我们需要一个工具来测试一组相当复杂的Java应用程序.应用程序主要是独立的客户端程序或与远程站点的servlet或apache服务器通信的applet.眼镜:

  1. 在Windows XP,Vista和7上运行
  2. 可参数化(可在脚本中指定要单击的按钮序列,在JTextFields和浏览器地址栏中键入文本等)
  3. 如果没有出现预期的窗口或对话框,可以退出或拯救或显示讨厌的消息
  4. 当应用程序打开浏览器窗口时,在.txt文件中记录浏览器的Java控制台上的输出(IE现在已足够).
  5. 在跑步的时候,我应该可以看到它在折叠的情况下运行,而它会运行几分钟

我们正在考虑编写一个基于AWTRobot的工具来读取命令文件并执行此操作 - (不知道如何做#3或#4) - 有些人会问你们如何检测桌面上的窗口.您会建议使用开源工具吗?我们不需要任何花哨的东西来捕捉视频或截图.谢谢, - MS

java user-interface automated-tests

5
推荐指数
3
解决办法
999
查看次数

反思Java

我只是搞砸了一个机会,没有回答2个问题.我仍然不知道答案,所以寻找它们:

[1]你有一个带有私有变量的Java类,没有getter/setter方法.你如何修改这些变量?

我的回答:你不能这样做,私有变量无法从外部访问.采访者:正确答案是"使用反思".

[2]您使用哪种反射方法来完成上述操作?我的回答:我不确定.采访者:再见.

根据我的经验,我(1)检查类是否存在(2)创建实例(3)检查方法是否存在(4)调用方法(5)继续使用类的实例.当然,我会捕获类似ClassNotFound和MethodInvocation的异常.但是有一个修改私有变量的技巧吗?人们这样做吗?TIA.

java reflection

5
推荐指数
1
解决办法
246
查看次数