当前位置: 首页 > 知识库问答 >
问题:

如何使J2EE weblogic应用程序能够适应数据库问题

洪博艺
2023-03-14

我有一个在Oracle Weblogic Server 11g上运行的Web应用程序。它使用应用服务器中定义的数据源连接到Oracle数据库(也是11g),其类为

神谕jdbc。xa。客户OracleXADataSource

>

  • 如果由于某种原因,数据库不存在,然后返回,则应用程序运行正常(在尝试访问数据库时出现异常,但这很好,然后可以在数据库返回时再次获得一些新连接)

    但是,如果数据库在weblogic服务器启动期间关闭,数据源没有部署在服务器上,并且应用程序抛出异常,因为它没有任何可用的数据源,部署被标记为失败,当然没有任何东西会自动修复。

    即使在服务器启动期间数据库不存在,是否有方法部署数据源?(这样,当数据库返回时,应用程序变得可用)

  • 共有3个答案

    姚子石
    2023-03-14

    将“初始容量”http://docs.oracle.com/cd/E14571_01/web.1111/e13814/jdbc_tuning.htm#i1028616设置为0:启动时的weblogic不会尝试创建任何连接,如果数据库不可用,也不会失败。

    马涵蓄
    2023-03-14

    您正在寻找的选项是“连接创建重试”,请选中此链接

    蒙洛华
    2023-03-14

    为什么要在没有有效数据源的情况下部署应用程序?

    您可能会伪造数据源(创建一个具有相同JNDI名称的虚拟数据源),并假设应用程序在启动时不验证数据源模式,您将得到一个半功能运行的应用程序(第一次DB交互将失败)。

    当真正的数据源启动并运行时,您将无法切换到它。您仍然需要重新启动应用程序服务器。

    更新:

    根据J2EE规范(1.5版本),在部署过程中绑定资源。我相信可以实现一个自定义工厂,返回虚拟/活动数据源。值得努力实施吗?;)

    EE.5.6.2部署者的责任

    将资源管理器连接工厂引用绑定到操作环境中存在的资源管理器连接工厂。例如,部署人员可以使用JNDI LinkRef机制来创建指向资源管理器连接工厂的实际JNDI名称的符号链接。资源管理器连接工厂类型必须与资源类型元素中声明的类型兼容。

     类似资料:
    • 问题内容: 我已经创建了一个SQLite数据库。我想将此数据库文件用于我的Android项目。我想将此数据库与我的应用程序捆绑在一起。 应用程序如何创建该数据库的访问权限并将其用作数据库,而不是创建新数据库? 问题答案: 注意: 在尝试此代码之前,请在以下代码中找到此行: 此处是你的数据库的名称。假设你在文件夹中有数据库的副本,因此,例如,如果你的数据库名称为,则的值为, 将数据库保留在资产文件夹

    • 在上一章中,我们创建了一个示例RMI应用程序,其中客户端调用显示GUI窗口(JavaFX)的方法。 在本章中,我们将举例说明客户端程序如何检索驻留在服务器上的MySQL数据库中的表的记录。 假设我们在数据库details有一个名为student_data的表,如下所示。 +----+--------+--------+------------+---------------------+ | I

    • 是否可以在不安装SQL Server的情况下在客户端计算机中安装应用程序? 在部署应用程序时可以包含数据库吗? 如果在部署时已在系统必备组件中选中SQL Server,是否可以在客户端的计算机上安装?

    • 我一直在努力从本地主机和外部连接到postgresql容器。 这是一个非常好的演示,它在https://linuxhint.com/postgresql_docker/.下面是docker compose。yml,postgres:12.2和pgadmin通过它进行集装箱化和运行。事实上,在运行docker compose之后。yml文件(由docker compose up-d编写)它们可以工作

    • 问题内容: 我正在研究将由学校使用的应用程序。每所学校将建立自己的数据库。每个学校都会为应用程序提供自己的“设置”文件。设置文件将包含创建设置文件的特定学校的数据库URL。这样一来,使用该应用程序的学生如果想连接到其他数据库,就只能加载其他设置文件。 我的问题是,如何保护用于连接数据库的用户名和密码?因此,只有应用程序具有对数据库的读写访问权限。应用程序仅具有该特定学校的读写权限吗? 如果您需要更