【问题标题】:How do you start derby in network server mode and still get an embedded connection?如何在网络服务器模式下启动 derby 并仍然获得嵌入式连接?
【发布时间】:2010-09-27 08:27:36
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: java derby


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

          如果我错了,有人纠正我,两者都将在单独的端口上运行。因此,您可以使用正确的 connectionName 连接到所需的连接,对吗?

          【讨论】:

            【解决方案5】:

            @pawelocue:抱歉,这是错误的。使用嵌入式服务器模式完全没问题,有时非常有用。绝对不气馁。

            【讨论】:

              猜你喜欢
              • 2018-07-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多