public final class PLTransactionContext extends java.lang.Object implements IPLContext, PLTransactionContextMBean
| Constructor and Description |
|---|
PLTransactionContext(PL parentPL)
Constructor für remote Transactionen
|
| Modifier and Type | Method and Description |
|---|---|
Request |
addRequest(JDataRow metadataRow)
Erzeugt einen Request aus Metadaten
|
void |
clearCache(java.lang.String datasetname)
Der angegebene Cache wird geleert
|
boolean |
commitTransaction(java.lang.String _transName)
Beendet die Transaktion mit dem angegebenen Namen, die zuvor mit
startTransaktion gestartet wurde.
|
int |
executeBatchStatement(java.lang.String name)
Führt ein Batch-Statement aus.
|
int |
executeBatchStatement(java.lang.String name,
ParameterList list)
Führt ein Batch-Statement aus.
|
int |
executeSql(java.lang.String sqlCommand)
Führt ein beliebiges (NonQuery) SQL-Statement aus, welches kein Ergebnis
liefern sollte.
|
int |
executeSql(java.lang.String sqlCommand,
ParameterList parameters)
Führt ein beliebiges SQL-Command aus (Update, Insert, Delete).
|
int |
executeSqlPara(java.lang.String sqlCommand,
java.util.Vector<java.lang.Object> parameter)
Führt ein beliebiges SQL-Statement aus, wobei die Parameter für dieses
Statement in einem Vector übergeben werden.
|
int |
executeStatement(java.lang.String name)
Führt ein benanntes Statement (UPDATE, INSERT, DELETE) aus.
|
int |
executeStatement(java.lang.String name,
ParameterList parameters)
Führt ein benanntes Statement (UPDATE, INSERT, DELETE) aus.
|
long |
getAbortedTransactions() |
JDataSet |
getAll(java.lang.String datasetname)
Liefert einen Dataset ohne Angabe eines Schlüssels; also vor allem eine
Menge von Datensätzen - bis zum Inhalt einer kompletten Tabelle.
|
long |
getCommitedTransactions() |
long |
getConnectionTimeOut() |
java.util.Date |
getCreatedTimeStamp() |
Database |
getCurrentDatabase()
Liefert die Datenbank
|
java.lang.String |
getCurrentDatabaseName()
Liefert den Namen der verwendeten Datenbank.
|
java.lang.String |
getDatabaseMetaData()
Liefert die Metadaten der Current Database als String
|
electric.xml.Document |
getDatabaseMetaDataDoc()
Liefert die Metadaten der Current Database als XML-Document
|
DataRowIterator |
getDataRowIterator(java.lang.String datasetname,
java.lang.String tablename,
java.lang.String sql,
ParameterList list)
Während 'normalerweise' ein DataSet vom Persistenz-Layer immer fertig
aufbereitet und komplett mit allen Daten übergeben wird, ist dieses
Vorgehen bei großen Datenmengen nicht angebracht, nicht nur, daß das zu
lange dauert, sondern weil auch ein OutOfMemory droht.
|
DataRowIterator |
getDataRowIteratorStatement(java.lang.String statementName,
ParameterList list) |
JDataSet |
getDataset(java.lang.String datasetname,
long oid)
Liefert einen Dataset mit dem angegebenen Namen und dem angegebenen
Primärschlüssel der Wurzeltabelle.
|
JDataSet |
getDataset(java.lang.String datasetname,
long[] oids)
Liefert einen Dataset mit den angegebenen Primärschlüsseln.
|
JDataSet |
getDataset(java.lang.String datasetname,
ParameterList parameters)
Liefert einen Dataset mit dem angegebenen Namen sowie unter Angabe eine
Liste von Parametern.
|
JDataSet |
getDataset(java.lang.String datasetname,
java.lang.String key)
Liefert einen Dataset mit dem angegebenen Namen und dem angegebenen
Primärschlüssel der Wurzeltabelle.
|
java.lang.String |
getDatasetDefinitionFileName() |
java.util.ArrayList<java.lang.String> |
getDatasetNames()
Liefert die Menge der definierten Datenbank-Zugriffe.
|
JDataSet |
getDatasetSql(java.lang.String datasetname,
java.lang.String sql)
Liefert einen flachen Dataset auf Basis eines beliebigen SQL-Statements.
|
JDataSet |
getDatasetSql(java.lang.String datasetname,
java.lang.String sql,
int limit) |
JDataSet |
getDatasetSql(java.lang.String datasetname,
java.lang.String sql,
ParameterList list)
Liefert einen flachen Dataset auf Basis eines beliebigen SQL-Statements.
|
JDataSet |
getDatasetSql(java.lang.String datasetname,
java.lang.String sql,
ParameterList list,
int limit,
int queryTimeout) |
JDataSet |
getDatasetSql(java.lang.String tablename,
java.lang.String columns,
java.lang.String from)
Deprecated.
|
JDataSet |
getDatasetStatement(Database.NamedStatement nst,
ParameterList list)
Liefert einen DataSet unter Angabe eines benannten Statements.
|
JDataSet |
getDatasetStatement(java.lang.String name)
Liefert einen DataSet unter Angabe des Namens eines benannten Statements.
|
JDataSet |
getDatasetStatement(java.lang.String name,
ParameterList list)
Liefert einen DataSet unter Angabe des Namens eines benannten Statements.
|
java.lang.String |
getDatasetString(java.lang.String datasetname,
long oid) |
JDataSet |
getDatasetWhere(java.lang.String datasetname,
java.lang.String where)
Deprecated.
|
java.text.SimpleDateFormat |
getDateFormat()
Liefert das DateFormat aus PLConfig.xml
|
JDataSet |
getEmptyDataset(java.lang.String datasetname)
Liefert einen Dataset ohne Werte aber mit den Metadaten.
|
java.lang.String |
getLayerName() |
int |
getMaxActive() |
int |
getMaxIdle() |
JDataRow |
getMetaDataRow()
Liefert eine DataRow mit den Eigenschaften des PL.
|
JDataSet |
getMetaDataSet()
Liefert einen Dataset, der alle definierten MetaDaten des Persistenz
Layers umfaßt:
Attribute der Klasse PL
Attribute der Klasse Database (als Child von PL)
Named Sequences
DataTables
Attribute der Klasse Request (als Child von PL)
Attribute der Klasse TableRequest (als Child von Request und mit
Selbst-Referenzierung)
Attribute der Klasse JDataColumn (als Child von TableRequest)
|
static JDataTable |
getMetaDataTable() |
int |
getMinIdle() |
Database.NamedStatement |
getNamedStatement(java.lang.String name)
Liefert ein benanntes Statement aus PLConfix.xml
|
java.lang.String |
getNowString() |
int |
getNumActive() |
int |
getNumIdle() |
long |
getOID()
Liefert einen neuen eindeutigen Schlüssel für den Client.
|
long |
getOID(java.lang.String sequenceName)
Liefert einen neuen eindeutigen Key aus der angegebenen Sequence.
|
java.lang.String |
getPLMetaData()
Liefert alle Informationen zum Persistenz-Layer als XML-Document.
|
electric.xml.Document |
getPLMetaDataDoc()
Liefert den gesamten Persistenz-Layer mit all seinen Eigenschaften:
Optionen des PL selbst
Die Datenbank mit ihren Tabellen (aus JDBC-Metadaten)
Die definierten Zugriffe (aus DatabaseConfig.xml)
|
Request |
getRequest(java.lang.String datasetname)
Liefert einen Request zu dem angegebenen Namen.
|
java.util.Date |
getResetTimeStamp() |
long |
getRollbackedTransaktions() |
long |
getStartedTransactions() |
java.text.SimpleDateFormat |
getTimeFormat() |
java.text.SimpleDateFormat |
getTimestampFormat() |
java.lang.String |
getTodayNowString() |
java.lang.String |
getTodayString()
Liefert das heutige Datum im aus PLConfig.xml.
|
java.util.Collection<TransactionInfo> |
getTransactionInfos() |
java.lang.String |
getTransactionName() |
int |
importJournal(java.util.List<electric.xml.Document> docs) |
boolean |
isDebug()
Liefert den Debug-Modus
|
java.lang.String |
pingDatabase()
Führt das "Ping"-Statement der Datenbank aus,
wie in PLConfig unter
|
void |
reset()
Setzt den Persistenzlayer zurück.
|
boolean |
rollbackTransaction(java.lang.String _transName)
Rollback der zuvor gestarteten Transaktion.
|
static java.util.ArrayList<JDataValue> |
rs2ArrayList(java.sql.ResultSet rs,
java.sql.ResultSetMetaData meta,
JDataTable tbl) |
int |
setDataset(JDataSet dataset)
Der vom Client geänderter Dataset wird in die Datenbank
zurückgeschrieben.
|
int |
setDataset(java.lang.String dataset) |
void |
setDatasetAsync(JDataSet dataset)
Nur bei PL verfügbar
|
void |
setDebug(boolean state)
Setzt den Debug-Modus des Persistenzlayers.
|
void |
shutdown()
Die Connection zur Datenbank wird geschlossen.
|
IPLContext |
startNewTransaction(java.lang.String _transName) |
void |
startTransaction(java.lang.String _transName)
Startet eine Transaktion mit dem angegebenen Namen.
|
boolean |
testCommit()
Überpüft, ob eine Transaktion mit commitTransaktion(name) beendet werden
kann.
|
public PLTransactionContext(PL parentPL)
parentPL - public Database getCurrentDatabase()
IPLContextgetCurrentDatabase in interface IPLContextpublic java.lang.String getCurrentDatabaseName()
IPLContextgetCurrentDatabaseName in interface IPLContextgetCurrentDatabaseName in interface PLTransactionContextMBeanpublic java.util.ArrayList<java.lang.String> getDatasetNames()
IPLContextgetDatasetNames in interface IPLContextpublic boolean isDebug()
IPLContextisDebug in interface IPLContextisDebug in interface PLTransactionContextMBeanpublic Request getRequest(java.lang.String datasetname)
IPLContextgetRequest in interface IPLContextpublic JDataSet getDataset(java.lang.String datasetname, long oid) throws PLException
IPLContextgetDataset in interface IPLContextPLExceptionpublic JDataSet getDataset(java.lang.String datasetname, long[] oids) throws PLException
IPLContextgetDataset in interface IPLContextPLExceptionpublic JDataSet getDataset(java.lang.String datasetname, java.lang.String key) throws PLException
IPLContextgetDataset in interface IPLContextPLExceptionpublic java.lang.String getDatasetString(java.lang.String datasetname,
long oid)
throws PLException
getDatasetString in interface IPLContextPLExceptionpublic JDataSet getDataset(java.lang.String datasetname, ParameterList parameters) throws PLException
IPLContextgetDataset in interface IPLContextPLExceptionpublic JDataSet getDatasetWhere(java.lang.String datasetname, java.lang.String where) throws PLException
datasetname - where - Bedingung ohne das Wörtchen WHEREPLExceptionpublic Database.NamedStatement getNamedStatement(java.lang.String name)
IPLContextgetNamedStatement in interface IPLContextpublic JDataSet getDatasetStatement(Database.NamedStatement nst, ParameterList list) throws PLException
IPLContext
Hinweis:
Das NameStatement kann auch aus einem abweichenden PL stammen
getDatasetStatement in interface IPLContextPLExceptionpublic JDataSet getDatasetStatement(java.lang.String name) throws PLException
IPLContextgetDatasetStatement in interface IPLContextPLExceptionpublic JDataSet getDatasetStatement(java.lang.String name, ParameterList list) throws PLException
IPLContextgetDatasetStatement in interface IPLContextlist - Argumentliste für dieses StatementPLExceptionpublic JDataSet getEmptyDataset(java.lang.String datasetname)
IPLContextgetEmptyDataset in interface IPLContextdatasetname - Der gewünschte Datasetpublic JDataSet getDatasetSql(java.lang.String tablename, java.lang.String columns, java.lang.String from) throws PLException
IPLContextgetDatasetSql in interface IPLContexttablename - Tabelle zu den Columnscolumns - Spaltennamen mit Komma getrenntfrom - beliebige BedingungPLExceptionpublic JDataSet getDatasetSql(java.lang.String datasetname, java.lang.String sql) throws PLException
IPLContext
Achtung!
Bei Sybase müssen die angebenen Column-Namen eindeutig sein!
getDatasetSql in interface IPLContextdatasetname - ( =
TableName)sql - "SELECT a,b FROM c,d WHERE ... ORDER BY ...PLExceptionpublic JDataSet getDatasetSql(java.lang.String datasetname, java.lang.String sql, int limit) throws PLException
getDatasetSql in interface IPLContextlimit - Maximale Größe des ResultSet vordefinierenPLExceptionpublic JDataSet getDatasetSql(java.lang.String datasetname, java.lang.String sql, ParameterList list) throws PLException
IPLContext
Achtung!
Bei Sybase müssen die angebenen Column-Namen eindeutig sein!
getDatasetSql in interface IPLContextdatasetname - ( =
TableName)PLExceptionpublic JDataSet getDatasetSql(java.lang.String datasetname, java.lang.String sql, ParameterList list, int limit, int queryTimeout) throws PLException
PLExceptionpublic DataRowIterator getDataRowIteratorStatement(java.lang.String statementName, ParameterList list) throws PLException
getDataRowIteratorStatement in interface IPLContextstatementName - Der Name eines benannten Statementslist - ParameterList oder null, wenn ohne ParameterPLException#getDataRowIterator(String, String, ParameterList)public DataRowIterator getDataRowIterator(java.lang.String datasetname, java.lang.String tablename, java.lang.String sql, ParameterList list) throws PLException
IPLContext
Der RowIterator schafft dort Abhilfe.
Es wird ein DataRowIterator geliefert unter Angabe von:
getDataRowIterator in interface IPLContextdatasetname - Namens des DataSet für den RowIteratortablename - Name der RootTable des Datasetsql - SELECT-Statementlist - ParameterListe (darf auch null sein)PLExceptionpublic java.lang.String pingDatabase()
throws PLException
IPLContextpingDatabase in interface IPLContextpingDatabase in interface PLTransactionContextMBeanPLExceptionpublic static java.util.ArrayList<JDataValue> rs2ArrayList(java.sql.ResultSet rs, java.sql.ResultSetMetaData meta, JDataTable tbl) throws java.sql.SQLException
rs - meta - tbl - java.sql.SQLExceptionDataRowIteratorpublic int setDataset(JDataSet dataset) throws PLException
IPLContextsetDataset in interface IPLContextPLExceptionpublic void setDatasetAsync(JDataSet dataset) throws PLException
setDatasetAsync in interface IPLContextdataset - PLExceptionpublic int setDataset(java.lang.String dataset)
throws PLException
setDataset in interface IPLContextPLExceptionpublic int importJournal(java.util.List<electric.xml.Document> docs)
throws PLException
importJournal in interface IPLContextPLExceptionpublic void clearCache(java.lang.String datasetname)
throws PLException
IPLContextclearCache in interface IPLContextPLExceptionpublic JDataSet getAll(java.lang.String datasetname) throws PLException
IPLContextgetAll in interface IPLContextPLExceptionpublic long getOID()
throws PLException
IPLContextgetOID in interface IPLContextPLExceptionpublic long getOID(java.lang.String sequenceName)
throws PLException
IPLContextgetOID in interface IPLContextPLExceptionpublic int executeSql(java.lang.String sqlCommand)
throws PLException
executeSql in interface IPLContextsqlCommand - PLExceptionIPLContext.getDatasetSql(java.lang.String, java.lang.String, java.lang.String)public int executeSql(java.lang.String sqlCommand,
ParameterList parameters)
throws PLException
IPLContextexecuteSql in interface IPLContextsqlCommand - SQL-Befehlparameters - Parameter für PreparedStatementPLExceptionIPLContext.getDatasetSql(java.lang.String, java.lang.String, java.lang.String)public int executeSqlPara(java.lang.String sqlCommand,
java.util.Vector<java.lang.Object> parameter)
throws PLException
Beispiel:
String sql = "INSERT INTO MyTable (DateCreated) VALUES (?)";
Vector v = new Vector();
v.add(new Date());
int cnt = pl.executeSqlPara(sql, v);
executeSqlPara in interface IPLContextsqlCommand - parameter - PLExceptionpublic int executeStatement(java.lang.String name)
throws PLException
IPLContextexecuteStatement in interface IPLContextname - Statement-NamePLExceptionpublic int executeStatement(java.lang.String name,
ParameterList parameters)
throws PLException
IPLContextexecuteStatement in interface IPLContextname - name Statement-Nameparameters - Paramter für das StatementPLExceptionpublic int executeBatchStatement(java.lang.String name)
throws PLException
IPLContextBatch-Statements sind eine Menge von NamedStatements, die nacheinander als Batch ausgeführt werden.
executeBatchStatement in interface IPLContextPLExceptionpublic int executeBatchStatement(java.lang.String name,
ParameterList list)
throws PLException
IPLContextBatch-Statements sind eine Menge von NamedStatements, die nacheinander als Batch ausgeführt werden.
executeBatchStatement in interface IPLContextlist - Eine Liste von Parametern für die Menge aller Parameter, die
für die verschiedenen Statements insgesamt benötigt werden.PLExceptionpublic void startTransaction(java.lang.String _transName)
throws PLException
IPLContextstartTransaction in interface IPLContextPLExceptionpublic boolean testCommit()
throws PLException
IPLContexttestCommit in interface IPLContextPLExceptionpublic boolean commitTransaction(java.lang.String _transName)
throws PLException
IPLContext
Bei Angabe eines falschen Transaktionsnamens wird eine Exception
geworfen.
Bei geschachtelten Transaktion wird dann eine Exception geworfen, wenn
zuvor ein Rollback ausgeführt wurde.
commitTransaction in interface IPLContextPLExceptionpublic boolean rollbackTransaction(java.lang.String _transName)
throws PLException
IPLContextrollbackTransaction in interface IPLContextPLExceptionpublic IPLContext startNewTransaction(java.lang.String _transName) throws PLException
startNewTransaction in interface IPLContextPLExceptionpublic java.lang.String getDatasetDefinitionFileName()
getDatasetDefinitionFileName in interface PLTransactionContextMBeanpublic java.text.SimpleDateFormat getDateFormat()
IPLContextgetDateFormat in interface IPLContextpublic java.text.SimpleDateFormat getTimeFormat()
getTimeFormat in interface IPLContextpublic java.text.SimpleDateFormat getTimestampFormat()
getTimestampFormat in interface IPLContextpublic static JDataTable getMetaDataTable()
public JDataRow getMetaDataRow()
public JDataSet getMetaDataSet()
getMetaDataSet in interface IPLContextpublic java.lang.String getDatabaseMetaData()
getDatabaseMetaData in interface IPLContextpublic electric.xml.Document getDatabaseMetaDataDoc()
getDatabaseMetaDataDoc in interface IPLContextpublic Request addRequest(JDataRow metadataRow) throws PLException
addRequest in interface IPLContextmetadataRow - PLExceptionRequest.getMetaDataRow()public void shutdown()
throws PLException
IPLContextshutdown in interface IPLContextPLExceptionpublic java.lang.String getPLMetaData()
IPLContextgetPLMetaData in interface IPLContextpublic electric.xml.Document getPLMetaDataDoc()
getPLMetaDataDoc in interface IPLContextpublic java.lang.String getTodayString()
IPLContext
Achtung!
Da der PersistenzLayer üblicherweise auf einem Server läuft, kann ein
Client auf diese Art aktuelle Angaben über Datum und Uhrzeit des Servers
ermitteln. Dieses ist in der Regel besser als die lokale Zeit des Client
zu verwenden.
getTodayString in interface IPLContextgetTodayString in interface PLTransactionContextMBeanpublic java.lang.String getNowString()
getNowString in interface IPLContextgetNowString in interface PLTransactionContextMBeanpublic java.lang.String getTodayNowString()
getTodayNowString in interface IPLContextgetTodayNowString in interface PLTransactionContextMBeanpublic void setDebug(boolean state)
IPLContextsetDebug in interface IPLContextsetDebug in interface PLTransactionContextMBeanpublic void reset()
throws PLException
IPLContextEs wird der Cache der PreparedStatements gelöscht.
reset in interface IPLContextPLExceptionpublic int getNumActive()
getNumActive in interface IPLContextgetNumActive in interface PLTransactionContextMBeanpublic int getNumIdle()
getNumIdle in interface IPLContextgetNumIdle in interface PLTransactionContextMBeanpublic int getMaxActive()
getMaxActive in interface IPLContextgetMaxActive in interface PLTransactionContextMBeanpublic int getMaxIdle()
getMaxIdle in interface IPLContextgetMaxIdle in interface PLTransactionContextMBeanpublic int getMinIdle()
getMinIdle in interface IPLContextgetMinIdle in interface PLTransactionContextMBeanIPLContext.getMinIdle()public long getConnectionTimeOut()
getConnectionTimeOut in interface IPLContextpublic java.util.Collection<TransactionInfo> getTransactionInfos()
getTransactionInfos in interface IPLContextpublic long getAbortedTransactions()
getAbortedTransactions in interface PLTransactionContextMBeanpublic long getCommitedTransactions()
getCommitedTransactions in interface PLTransactionContextMBeanpublic long getRollbackedTransaktions()
getRollbackedTransaktions in interface PLTransactionContextMBeanpublic long getStartedTransactions()
getStartedTransactions in interface PLTransactionContextMBeanpublic java.util.Date getCreatedTimeStamp()
getCreatedTimeStamp in interface PLTransactionContextMBeanpublic java.util.Date getResetTimeStamp()
getResetTimeStamp in interface PLTransactionContextMBeanpublic java.lang.String getLayerName()
public java.lang.String getTransactionName()
getTransactionName in interface IPLContextIPLContext.startNewTransaction(String)