2016-04-15 5 views
0

Ich arbeite an einem Migrationsprojekt, bei dem wir eine Anwendung von Weblogic auf Websphere 8.5 Server migrieren.Angeben des Standardschemas WebSphere 8.5 Server

Im Weblogic-Server können wir das Standardschema beim Erstellen der Datenquelle angeben, aber ich sehe nicht dieselbe Option in WebSphere 8.5 Server.

Gibt es eine benutzerdefinierte Eigenschaft, durch die wir es einrichten können, habe ich currentSchema = MySchema versucht, aber es hat nicht funktioniert.

+0

Wir verbinden zu Oracle Database – Dave

+0

verwenden Sie WebSphere traditionelle oder WebSphere Freiheit? –

+0

ich bin mit WebSphere traditionell – Dave

Antwort

0

Diese Antwort erfordert deutlich mehr Arbeit, aber ich bin auch, weil es die vorgeschlagene Lösung ist so ziemlich alles, um eine Verbindung anzupassen, einschließlich des Schemas. Mit WebSphere Application Server können Sie einen DataStoreHelper bereitstellen/erweitern.

Knowledge Center document on providing a custom DataStoreHelper

In diesem Fall können Sie com.ibm.websphere.rsadapter.Oracle11gDataStoreHelper verlängern.

JavaDoc for Oracle11gDataStoreHelper

Die folgenden Methoden werden von Interesse sein:

  • doConnectionSetup, die auf eine Verbindung einmalige Initialisierung durchführt, wenn es zuerst
  • doConnectionCleanup
  • erstellt wird, die vor der Rückkehr Verbindungszustand zurücksetzt, es zum Verbindungspool.

Wenn Sie doConnectionSetup außer Kraft setzen, werden Sie mit der neu erstellten Verbindung geliefert, auf die Sie tun können,

super.doConnectionSetup(connection); 
Statement stmt = connection.createStatement(); 
try { 
    stmt.execute(sqlToUpdateSchema); 
} finally { 
    stmt.close(); 
} 

doConnectionCleanup können Sie die Möglichkeit berücksichtigen, dass Anwendungscode, der die Verbindung mit möglicherweise wechseln das Schema zu etwas anderem. doConnectionCleanup gibt Ihnen die Möglichkeit, es zurückzusetzen. Auch hier werden Sie mit einem Anschluss geliefert, auf die Sie tun können,

super.doConnectionCleanup(connection); 
Statement stmt = connection.createStatement(); 
try { 
    stmt.execute(sqlToUpdateSchema); 
} finally { 
    stmt.close(); 
} 

Beachten Sie, dass in beiden Fällen die entsprechende Superklassenmethode aufrufen wichtig ist, dass Sie die Datenbank-spezifischen auszulöschen Initialisierung nicht zu gewährleisten/Bereinigungscode, den WebSphere Application Server basierend auf der Datenbank erstellt hat.

0

Soweit ich weiß, erlaubt Weblogic nur das Setzen eines Standardschemas, indem man 'Init SQL to a SQL string which sets the current schema in the database, such as SQL ALTER SESSION SET CURRENT_SCHEMA = MySchema` setzt. Diese Antwort geht davon aus, dass das aktuelle Schema einer Datenquelle nur über SQL festgelegt werden kann.

In WebSphere ist Init SQL von WebLogic die Eigenschaft preTestSQLString auf WebSphere.

Die Idee der preTestSQLString-Eigenschaft ist, dass WebSphere eine sehr einfache SQL-Anweisung ausführt, um zu überprüfen, ob Sie beim Start des Servers eine Verbindung zu Ihrer Datenbank herstellen können. In der Regel Werte für diese Eigenschaft sind wirklich grundlegende Dinge wie select 1 from dual', but since you can put in whatever SQL you want, you could set preTestSQLString to SQL ALTER SESSION SET CURRENT_SCHEMA = MySchema`.

Schritte von der WebSphere-Dokumentation (link):

  1. in der Administrationskonsole, klicken Sie auf Ressourcen> JDBC-Provider.
  2. Wählen Sie einen Anbieter aus und klicken Sie unter Weitere Eigenschaften auf Datenquellen.
  3. Wählen Sie eine Datenquelle aus, und klicken Sie unter Weitere Eigenschaften auf WebSphere Application Server-Datenquelleneigenschaften.
  4. Aktivieren Sie das Kontrollkästchen PreTest Connections.
  5. Geben Sie einen Wert für das PreTest Connection Retry Interval ein, der in Sekunden gemessen wird. Diese Eigenschaft bestimmt die Häufigkeit, mit der eine neue Verbindungsanforderung erstellt wird, nachdem eine Vortestoperation fehlgeschlagen ist.
  6. Geben Sie eine gültige SQL-Anweisung für den PreTest-SQL-String ein. Verwenden Sie einen zuverlässigen SQL-Befehl mit minimalen Auswirkungen auf die Leistung. Diese Anweisung wird jedes Mal verarbeitet, wenn eine Verbindung vom freien Pool erhalten wird. Zum Beispiel "Wählen Sie 1 aus Dual" in Oracle oder "SQL Select 1" in SQL Server.
0

Universal-Connection Pool (UCP) ist ein Java-Connection-Pool und das White Paper "UCP with Webshere" zeigt, wie UCP als Datenquelle einzurichten.

für JDBC-Datenquelle, die Schritte sind ähnlich, aber Sie die Standard-JDBC können wählen, Treiberoption.

Schauen Sie sich das Papier als Referenz.