2013-09-25 118 views
0

我正在使用以下驅動程序連接到AS400系統。AS400:連接到AS400系統時處理多個模式

「的jdbc:AS400://系統名稱/默認模式;屬性」

我有一個要求,凡在我必須處理多個模式的。

由於模式名稱需要在JDBC URL中提及,我是否需要爲每個模式打開單獨的連接池,我試圖連接?

當前有兩個連接池用於指向相同數據庫屬性的兩個不同模式。

是否有任何其他方式來處理單個連接的多個模式。

+0

順便說一句,那個字符串不是你的驅動程序。它更像是連接字符串的模板。 – WarrenT

回答

2

模式在IBM i(AS/400)上更通常稱爲庫。

您可以使用單個數據庫連接,並使用默認SQL命名約定schema.table或具有系統命名約定的schema/table來限定表名。

看到SQL Programming引導「命名」的Toolbox程序員指南的IBM Toolbox for Java JDBC properties部分財產和SQL and system naming conventions主題以獲取更多信息。

+0

最近對IBM i 7.1進行的更新使得可以在系統命名下使用'schema.table'表示法以及OS/400樣式'schema/table'。但不是每個使用7.1的人都必須使用最新的技術刷新。 – WarrenT

+0

修復了Toolbox JDBC屬性的鏈接 – WarrenT

1

通過使用「系統命名」設置,您的會話可以利用每個作業所具有的「庫列表」屬性。它是當系統解析非限定對象的位置時搜索的方案列表。這個概念與Windows或Linux中的路徑概念類似。

除了@JamesA提供的鏈接,還閱讀Birgitta Hauser的兩部分article以及unqualified names上的SQL參考。

使用會話(即作業)庫列表而不是靜態硬編碼模式名稱通常被認爲是最佳實踐。我建議你遵循這種做法。儘管術語模式和庫本質上是同義詞,但我使用IBM i命令CHGCURLIB而不是SET CURRENT SCHEMA,因爲該命令不會限制SQL關於庫列表的行爲。但是我從Birgitta的文章中瞭解到,SET CURRENT SCHEMA完全阻止了庫列表的使用。當前庫成爲庫列表(用戶部分)上的第一個庫。