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

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

谢谢。

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

首先确保以下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。 我不相信是这样的。 您的应用程序将继续使用嵌入式驱动程序访问数据库,而现在允许使用客户端驱动程序访问其他软件。

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

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

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

有人纠正我,如果我错了,两人都会在separte端口上运行。 所以你可以使用正确的connectionName连接到所需的一个,对吗?

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