设置:Oracle SOA 套件和 Oracle 数据库快捷版 返回主文“面向服务的环境中的发票处理” 在开始前,确保已安装和配置 Oracle SOA 套件(包括 Oracle JDeveloper)和 Oracle 数据库 10g 快捷版。以下为完成该设置的步骤。 - 安装 Oracle 数据库快捷版 10g 第 2 版 (10.2.0.1) 或更高版本(下载页面)。
- 安装 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 数据库 - 使用项目文件 zip 中的脚本(位于 InvoiceDemo/InvoiceESB/resources/scripts 目录中)创建数据库用户 INVOICE_DEMO、发票表和数据库序列。在 Oracle SQL Developer、SQL*Plus 和其他工具中运行以下脚本:
- 以具系统权限的用户身份连接,如 SYSTEM。
- 运行脚本 create_user.sql。这将在数据库中创建 INVOICE_DEMO 模式。
- 以用户 INVOICE_DEMO 身份连接。
- 运行脚本 create_tables.sql 创建发票表 INVOICES 和 INVOICE_LINES。运行 create_sequences.sql 脚本创建数据库序列 INVOICES_SEQ 和 INVOICE_LINES_SEQ。
- 测试这些步骤的结果。
 图 1 从 Oracle SQL Developer 运行 SQL 脚本 注意,如果您是首次运行这些脚本,您可以忽略所有关于“table or view does not exist”或“sequence does not exist”的错误提示。 下图模仿了这一步创建的发票表。  图 2 发票表 - 在 Oracle JDeveloper 中建立一个到新创建的数据库用户的连接。启动 JDeveloper,打开 Connections Navigator 选项卡,双击 Database 启动 Create Database Connection 向导。使用以下设置:
- 第 1 步:Connection Name: invoiceDemo。
- 第 1 步:Connection Type:Oracle (JDBC)。
- 第 2 步:Username: INVOICE_DEMO。
- 第 2 步:Password: INVOICE_DEMO。
- 第 2 步:保留 Role 为空。
- 第 2 步:选择 Deploy Password。
- 第 3 步:Driver:thin。
- 第 3 步:Host Name:运行数据库的主机,如 localhost。
- 第 3 步:JDBC Port:您的数据库的监听器端口,例如 1521。
- 第 3 步:SID/Service Name:填写您的数据库 SID 或服务名称,例如 SID: ORCL。
- 第 4 步:Test Connection:应当返回 Success。
 图 3 在 Oracle JDeveloper 中创建数据库连接 选择新创建的连接,下钻到您在前一步创建的发票表。  图 4 到 INVOICE_DEMO 的数据库连接 初始设置:Oracle SOA 套件 - 在 Oracle JDeveloper 中,建立一个到新安装的 Oracle SOA 套件组件的 Oracle 应用服务器连接。打开 Connections Navigator 选项卡,双击 Application Server 启动 Create Application Server Connection 向导。使用以下设置:
- 第 1 步:Connection Name: OAS_SOA_Suite_10g。
- 第 1 步:Connection Type:Oracle Application Server 10g 10.1.3。
- 第 2 步:Username: oc4jadmin。
- 第 2 步:Password:在 Oracle SOA 套件安装期间输入的口令 oc4jadmin。
- 第 2 步:选择 Deploy Password。
- 第 3 步:Connect To:Single Instance。
- 第 3 步:Host Name:运行 Oracle 应用服务器的主机,例如 localhost。
- 第 3 步:OPMN Port:OPMN 请求端口,例如 6004。登录至 Oracle Application Server Enterprise Manager,然后转至 Cluster Topology → Runtime Ports → OPMN → Request 查看值。
- 第 3 步:OC4J Instance Name:在其中安装 Oracle SOA 套件的 OC4J 容器的名称。对于基本安装,这是主目录。高级安装 默认 为 oc4j_soa。这可能与您所选择的不同。
- 第 4 步:Test Connection:应当返回 Success。
 图 5 在 Oracle JDeveloper 中创建应用服务器连接  图 6 Oracle Application Server Enterprise Manager 中的 Runtime Ports 一览  图 7 到 Oracle SOA 套件的应用服务器连接 - 在 Oracle JDeveloper 中,建立一个到新安装的 Oracle SOA 套件组件的 Oracle 集成服务器连接。打开 Connections Navigator 选项卡,双击 Integration Server 启动 Create Integration Server Connection 向导。使用以下设置:
- 第 1 步:Connection Name: IS_SOA_Suite_10g。
- 第 2 步:Application Server:选择在前一步创建的应用服务器连接 OAS_SOA_Suite_10g。
- 第 2 步:Host Name:运行 Oracle 应用服务器的主机,例如 localhost。
- 第 2 步:Port Number:HTTP 端口,例如 8888。登录至 Oracle Application Server Enterprise Manager,然后转至 Cluster Topology → Runtime Ports → OC4J → HTTP 查看值。
- 第 2 步:如果使用代理,选择 Add host name to the list of proxy exceptions。
- 第 3 步:Test Connection:对 Oracle 应用服务器、Oracle BPEL 流出管理器服务器和 Oracle ESB 服务器应当返回 OK。
 图 8 在 Oracle Jdeveloper 中创建集成服务器连接  图 9 到 Oracle SOA 套件的集成服务器连接 初始设置:数据库适配器 配置数据库适配器,我们的 ESB 流程可使用它执行与数据库相关的操作,如插入 和删除。数据库适配器使用数据源,该数据源使用与数据库相连的连接池。 - 选择 Start → Programs → Oracle – <SOA 套件实例名> → Oracle Application Server Control 打开 Oracle Oracle Application Server Enterprise Manager。这将在浏览器窗口中打开企业管理器。
- 浏览至部署了 ESB 的 OC4J 实例。浏览至 Administration → JDBC Resources。按下列步骤为新创建的 INVOICE_DEMO 用户创建连接池。
- 在 Connection Pools 区域中单击 Create。
- 第 1 步:Application:默认值。
- 第 1 步:选择 New Connection Pool。
- 第 2 步:Name: invoiceDemoConnectionPool。
- 第 2 步:选择 Generate URL from Connection Information 并输入您的数据库信息。
- 第 2 步:Credentials/Username: INVOICE_DEMO。
- 第 2 步:Credentials/Use Cleartext Password: INVOICE_DEMO。
- 第 2 步:选择 Test Connection 测试连接。 这将打开一个测试窗口。接受默认值并测试连接池。
 图 10 Oracle Application Server Enterprise Manager 中的 Administration 一览  图 11 Oracle Application Server Enterprise Manager 中的 JDBC Resources 一览  图 12 在 Oracle Application Server Enterprise Manager 中创建连接池 - 基于在上一步创建的连接池创建一个新的数据源。导航至 Administration → JDBC Resources 并执行以下步骤:
- 在 Data Sources 区域中单击 Create。
- 第 1 步:Application:默认值。
- 第 1 步:Data Source Type:Managed Data Source。
- 第 2 步:Name: invoiceDemoDataSource。
- 第 2 步:JNDI Location: jdbc/invoiceDemoDataSource。
- 第 2 步:Transaction Level:Global & Local Transactions。
- 第 2 步:Connection Pool: invoiceDemoConnectionPool。
- 第 2 步:Login Timeout (seconds):0。
- 第 2 步:不要输入证书。
在 JDBC Resources 屏幕的 Data Sources 部分中选择 Test Connection,测试数据源。  图 13 在 Oracle Application Server Enterprise Manager 中创建托管数据源 - 配置数据库适配器。在 Oracle Application Server Enterprise Manager 中,浏览至 Cluster Topology → 安装了 SOA 套件的 OC4J → Applications → default → Modules → DbAdapter → Connection Factories。执行以下步骤,创建一个新连接工厂:
- 单击 Create。
- 第 1 步:接受默认的接口类。
- 第 2 步:JNDI Location: eis/DB/invoiceDemo。
- 第 2 步:xADataSourceName: jdbc/invoiceDemoDataSource(先前创建的数据源)。
- 第 2 步:usesNativeSequencing:true。(重要提示:这将启用数据库序列。)
- 第 2 步:sequencePreallocationSize:1。(重要提示:该值必须等于您先前创建的数据库序列的增量值。)
- 第 2 步:接受所有其他默认值。
 图 14 Oracle Application Server Enterprise Manager 中的 Adapters 一览  图 15 Oracle Application Server Enterprise Manager 中的 Database Adapter 一览  图 16 在 Oracle Application Server Enterprise Manager 中创建数据库适配器连接工厂 |