设置:Oracle SOA 套件和 Oracle 数据库快捷版

 返回主文“面向服务的环境中的发票处理”

在开始前,确保已安装和配置 Oracle SOA 套件(包括 Oracle JDeveloper)和 Oracle 数据库 10g 快捷版。以下为完成该设置的步骤。

  1. 安装 Oracle 数据库快捷版 10g 第 2 版 (10.2.0.1) 或更高版本(下载页面)。
  2. 安装 Oracle SOA 套件 10g 第 3 版 (10.1.3.1) 或更高版本,以及 Oracle JDeveloper 10g 第 3 版 (10.1.3.1) 或更高版本。Oracle SOA 套件下载页面提供这些产品的安装和配置说明。在安装 Oracle SOA 套件时,确保安装 ESB 组件(默认应该安装)。同时注意安装程序指定的 SOA 应用程序 Oracle Application Server Containers for Java EE (OC4J) 实例名称,因为当下一步配置 Oracle 应用服务器连接时您将用到它。

初始设置:Oracle 数据库

  1. 使用项目文件 zip 中的脚本(位于 InvoiceDemo/InvoiceESB/resources/scripts 目录中)创建数据库用户 INVOICE_DEMO、发票表和数据库序列。在 Oracle SQL Developer、SQL*Plus 和其他工具中运行以下脚本:
    1. 以具系统权限的用户身份连接,如 SYSTEM。
    2. 运行脚本 create_user.sql。这将在数据库中创建 INVOICE_DEMO 模式。
    3. 以用户 INVOICE_DEMO 身份连接。
    4. 运行脚本 create_tables.sql 创建发票表 INVOICES 和 INVOICE_LINES。运行 create_sequences.sql 脚本创建数据库序列 INVOICES_SEQ 和 INVOICE_LINES_SEQ。
    5. 测试这些步骤的结果。

    图 1 从 Oracle SQL Developer 运行 SQL 脚本

    注意,如果您是首次运行这些脚本,您可以忽略所有关于“table or view does not exist”或“sequence does not exist”的错误提示。

    下图模仿了这一步创建的发票表。

    图 2 发票表

  2. 在 Oracle JDeveloper 中建立一个到新创建的数据库用户的连接。启动 JDeveloper,打开 Connections Navigator 选项卡,双击 Database 启动 Create Database Connection 向导。使用以下设置:
    1. 第 1 步:Connection Name: invoiceDemo。
    2. 第 1 步:Connection Type:Oracle (JDBC)。
    3. 第 2 步:Username: INVOICE_DEMO。
    4. 第 2 步:Password: INVOICE_DEMO。
    5. 第 2 步:保留 Role 为空。
    6. 第 2 步:选择 Deploy Password
    7. 第 3 步:Driver:thin。
    8. 第 3 步:Host Name:运行数据库的主机,如 localhost
    9. 第 3 步:JDBC Port:您的数据库的监听器端口,例如 1521。
    10. 第 3 步:SID/Service Name:填写您的数据库 SID 或服务名称,例如 SID: ORCL。
    11. 第 4 步:Test Connection:应当返回 Success

    图 3 在 Oracle JDeveloper 中创建数据库连接

    选择新创建的连接,下钻到您在前一步创建的发票表。

    图 4 到 INVOICE_DEMO 的数据库连接

初始设置:Oracle SOA 套件

  1. 在 Oracle JDeveloper 中,建立一个到新安装的 Oracle SOA 套件组件的 Oracle 应用服务器连接。打开 Connections Navigator 选项卡,双击 Application Server 启动 Create Application Server Connection 向导。使用以下设置:
    1. 第 1 步:Connection Name: OAS_SOA_Suite_10g。
    2. 第 1 步:Connection Type:Oracle Application Server 10g 10.1.3。
    3. 第 2 步:Username: oc4jadmin。
    4. 第 2 步:Password:在 Oracle SOA 套件安装期间输入的口令 oc4jadmin
    5. 第 2 步:选择 Deploy Password
    6. 第 3 步:Connect To:Single Instance。
    7. 第 3 步:Host Name:运行 Oracle 应用服务器的主机,例如 localhost
    8. 第 3 步:OPMN Port:OPMN 请求端口,例如 6004。登录至 Oracle Application Server Enterprise Manager,然后转至 Cluster Topology → Runtime Ports → OPMN → Request 查看值。
    9. 第 3 步:OC4J Instance Name:在其中安装 Oracle SOA 套件的 OC4J 容器的名称。对于基本安装,这是主目录。高级安装 默认oc4j_soa。这可能与您所选择的不同。
    10. 第 4 步:Test Connection:应当返回 Success

    图 5 在 Oracle JDeveloper 中创建应用服务器连接

    图 6 Oracle Application Server Enterprise Manager 中的 Runtime Ports 一览

    图 7 到 Oracle SOA 套件的应用服务器连接

  2. 在 Oracle JDeveloper 中,建立一个到新安装的 Oracle SOA 套件组件的 Oracle 集成服务器连接。打开 Connections Navigator 选项卡,双击 Integration Server 启动 Create Integration Server Connection 向导。使用以下设置:
    1. 第 1 步:Connection Name: IS_SOA_Suite_10g。
    2. 第 2 步:Application Server:选择在前一步创建的应用服务器连接 OAS_SOA_Suite_10g
    3. 第 2 步:Host Name:运行 Oracle 应用服务器的主机,例如 localhost
    4. 第 2 步:Port Number:HTTP 端口,例如 8888。登录至 Oracle Application Server Enterprise Manager,然后转至 Cluster Topology → Runtime Ports → OC4J → HTTP 查看值。
    5. 第 2 步:如果使用代理,选择 Add host name to the list of proxy exceptions
    6. 第 3 步:Test Connection:对 Oracle 应用服务器、Oracle BPEL 流出管理器服务器和 Oracle ESB 服务器应当返回 OK

    图 8 在 Oracle Jdeveloper 中创建集成服务器连接

    图 9 到 Oracle SOA 套件的集成服务器连接

初始设置:数据库适配器

配置数据库适配器,我们的 ESB 流程可使用它执行与数据库相关的操作,如插入 和删除。数据库适配器使用数据源,该数据源使用与数据库相连的连接池。

  1. 选择 Start → Programs → Oracle – <SOA 套件实例名> → Oracle Application Server Control 打开 Oracle Oracle Application Server Enterprise Manager。这将在浏览器窗口中打开企业管理器。
  2. 浏览至部署了 ESB 的 OC4J 实例。浏览至 Administration → JDBC Resources。按下列步骤为新创建的 INVOICE_DEMO 用户创建连接池。
    1. 在 Connection Pools 区域中单击 Create
    2. 第 1 步:Application:默认值。
    3. 第 1 步:选择 New Connection Pool
    4. 第 2 步:Name: invoiceDemoConnectionPool。
    5. 第 2 步:选择 Generate URL from Connection Information 并输入您的数据库信息。
    6. 第 2 步:Credentials/Username: INVOICE_DEMO。
    7. 第 2 步:Credentials/Use Cleartext Password: INVOICE_DEMO。
    8. 第 2 步:选择 Test Connection 测试连接。 这将打开一个测试窗口。接受默认值并测试连接池。

    图 10 Oracle Application Server Enterprise Manager 中的 Administration 一览

    图 11 Oracle Application Server Enterprise Manager 中的 JDBC Resources 一览

    图 12 在 Oracle Application Server Enterprise Manager 中创建连接池

  3. 基于在上一步创建的连接池创建一个新的数据源。导航至 Administration → JDBC Resources 并执行以下步骤:
    1. 在 Data Sources 区域中单击 Create
    2. 第 1 步:Application:默认值。
    3. 第 1 步:Data Source Type:Managed Data Source。
    4. 第 2 步:Name: invoiceDemoDataSource。
    5. 第 2 步:JNDI Location: jdbc/invoiceDemoDataSource。
    6. 第 2 步:Transaction Level:Global & Local Transactions。
    7. 第 2 步:Connection Pool: invoiceDemoConnectionPool。
    8. 第 2 步:Login Timeout (seconds):0。
    9. 第 2 步:不要输入证书。

    在 JDBC Resources 屏幕的 Data Sources 部分中选择 Test Connection,测试数据源。

    图 13 在 Oracle Application Server Enterprise Manager 中创建托管数据源

  4. 配置数据库适配器。在 Oracle Application Server Enterprise Manager 中,浏览至 Cluster Topology → 安装了 SOA 套件的 OC4J → Applications → default → Modules → DbAdapter → Connection Factories。执行以下步骤,创建一个新连接工厂:
    1. 单击 Create
    2. 第 1 步:接受默认的接口类。
    3. 第 2 步:JNDI Location: eis/DB/invoiceDemo。
    4. 第 2 步:xADataSourceName: jdbc/invoiceDemoDataSource(先前创建的数据源)。
    5. 第 2 步:usesNativeSequencing:true。(重要提示:这将启用数据库序列。)
    6. 第 2 步:sequencePreallocationSize:1。(重要提示:该值必须等于您先前创建的数据库序列的增量值。)
    7. 第 2 步:接受所有其他默认值。

    图 14 Oracle Application Server Enterprise Manager 中的 Adapters 一览

    图 15 Oracle Application Server Enterprise Manager 中的 Database Adapter 一览

    图 16 在 Oracle Application Server Enterprise Manager 中创建数据库适配器连接工厂