如何在网络服务器模式下启动derby并仍然获得嵌入式连接?

时间:2008-12-17 15:08:50

标签: java derby

我只是想知道如何在网络服务器模式下启动derby并仍然可以获得嵌入式连接?

谢谢。

5 个答案:

答案 0 :(得分:4)

您需要在"嵌入式服务器模式"中启动Derby。如果您已经在嵌入模式下使用Derby,可以通过在类路径中提供必要的文件,然后在启动应用程序时指定一些命令行参数来启用它。

首先确保以下jar位于应用程序的运行时类路径中。

     derby.jar derbynet.jar

然后将以下命令行选项添加到用于启动应用程序的Java命令。如果缺少类文件,这些选项将无效。

    -Dderby.drda.startNetworkServer=true 
    -Dderby.drda.portNumber=8011

我在Tomcat托管的servlet中运行Derby,因此我将这些选项添加到catalina.bat文件中。

启动您的应用程序并检查打开的网络套接字列表。

    netstat -an | find "8011"

您现在应该看到Derby在8011上侦听连接。现在可以使用Derby的客户端驱动程序(derbyclient.jar)连接到数据库。 http://docs.oracle.com/javadb/10.3.3.0/adminguide/radminembeddedserverex.html上的说明很好地涵盖了这一部分。

有人暗示可能不鼓励在这种模式下运行Derby。我不相信是这样的。您的应用程序将继续使用嵌入式驱动程序访问数据库,而现在允许使用客户端驱动程序访问其他软件。

答案 1 :(得分:2)

Embedded Server mode听起来就像你要求的那样。它允许您在启动嵌入式数据库时启动网络服务器。

答案 2 :(得分:0)

你想在网络服务器模式下启动derby并获得嵌入式驱动程序,这听起来很矛盾。即使这可能,但绝对不鼓励。您应该决定是使用DRDA在网络模式下使用Apache Derby还是作为嵌入式驱动程序,并坚持做出决定。

在这里,您将找到有关如何使用网络驱动程序的教程: http://db.apache.org/derby/papers/DerbyTut/ns_intro.html

答案 3 :(得分:0)

如果我错了,有人会纠正我,两者都会在不同的端口上运行。所以你可以使用正确的连接名称连接到所需的名称,对吗?

答案 4 :(得分:0)

@pawelocue:对不起,但这是错的。使用嵌入式服务器模式是完全正常的,有时非常有用。绝对不会气馁。