Einleitung
Diese Seite beschreibt die verschiedenen Archiv-Anbindungen für ein EASY-Archiv.
ArchiveEASY
Klasse: com.nextlevel.b2bbp.easy.archive.ArchiveEASY
Diese Klasse archiviert in ein EASY-Archiv. Das EASY-Archiv wird über einen JNDI-Lookup angesprochen.
In den Build-Properties muss com.nextlevel.b2bbp.easy zu den additional Builds hinzugefügt werden. Die nötigen zusätzlichen Bibliotheken werden automatisch kopiert
Folgende Global Properties müssen gesetzt sein:
a) JNDI-spezifische Properties
Eigenschaft | Wert |
---|---|
B3P_EASY_JNDI_INIT | JNDI-Poperty zu “java.naming.factory.initial” |
B3P_EASY_JNDI_FACTORY_URL | JNDI-Poperty zu “java.naming.factory.url.pkgs” |
B3P_EASY_JNDI_PROVIDER_URL | JNDI-Poperty zu “java.naming.provider.url” |
B3P_EASY_JNDI_FACTORY | JNDI-Poperty zu “jnp.socket.Factory” |
Beispiel: JBOSS-Application-Server Standard: Title Text Copy Code
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
jnp.socket.Factory=org.jnp.interfaces.TimedSocketFactory
b) EASY-spezifische Properties
Eigenschaft | Wert |
---|---|
B3P_EASY_USER | Username zum Login; Beispiel: superadmin |
B3P_EASY_PASSWORD | Passwort zum Login; Beispiel: super |
B3P_EASY_LOGIN_INSTANCE | Login-Instanz des Archivs; Beispiel: Default |
B3P_EASY_POOL | Archiv-Pool, in den archiviert wird; Beispiel: B2BArchiv |
B3P_EASY_LOCALE | Archive-Locale; Beispiel: DE (Deutschland) |
B3P_EASY_DOCUMENT_SCHEMA | Dokumentschema mit dem archiviert wird; Beispiel: admin_test_1 |
B3P_EASY_ARCHIVE_ID_ATTRIBUTE | Name des Dokument-Feldes für die ArchivID; Beispiel: B2BArchiveID |
c) Für lesenden Zugriff müssen zusätzlich folgende Global Properties gesetzt werden.
Eigenschaft | Wert |
---|---|
B3P_ARCHIVE_MESSAGE_MONITOR_IMPL (*) | com.nextlevel.b2bbp.easy.archive.EmailArchiveMonitorEASY |
B3P_ARCHIVE_AS2_MESSAGE_MONITOR_IMPL (*), (**) | com.nextlevel.b2bbp.easy.archive.AS2ArchiveMonitorEASY |
B3P_ARCHIVE_MONITOR_IMPL (*) | com.nextlevel.b2bbp.easy.archive.ArchiveMessageMonitorEASY |
(*): Diese Properties müssen nur gesetzt werden, wenn Suche im Index/Archiv aus dem Nachrichtenmonitor gewünscht ist.
(**): Diese Property muss nur gesetzt werden, wenn AS2 Nachrichten archiviert werden.
ArchiveEASYDBBackup
Diese Implementierung entspricht weitestgehend der ArchiveEASY Implementierung, ist also auch so zu konfigurieren. Zusätzlich zu der Standardimplementierung wird hier aber eine neue Tabelle innerhalb der Datenbank verwendet, um auch die zu schreibenden Archiv- Index Einträge zu sichern, um sie im Fehlerfall wieder anhand der DB wiederherstellen zu können. Der erste Schritt besteht also im Schreiben entsprechender Index Einträge für die Nachrichten in die Backup Tabelle, ein möglicher zweiter Schritt wäre die Wiederherstellung (Re-Indizierung) anhand dieser Tabelle. Das ist eine erweiterte Sicherheitsmaßnahme, um Datenvelust auf Index Ebene zu vermeiden und kann beim Verlust von Indexdateien hilfreich sein. Um das Backup und die Re- Indizierung einzurichten, müssen die folgenden Anpassungen vorgenommen werden:
Weitere Details sind hier zu finden.
B2B Konfigurationen
Folgende Eigenschaften und Properties müssen gesetzt werden:
a) Für den Archive Scheduler Service:
Eigenschaft | Wert |
---|---|
B3P_ARCHIVE_TYPE | com.nextlevel.b2bbp.easy.archive.dbbackup.ArchiveEASYDBBackup |
b) Global Property Zur Bekanntgabe der Tabelle:
Eigenschaft | Wert |
---|---|
B3P_ARCHIVE_DB_BACKUP_TABLE | B3P_ARCHIV_BACKUP |
c) Anpassungen der Extension B3P_INDEX_MANAGEMENT:
Eigenschaft | Wert |
---|---|
B3P_LUCENE_INDEX_FOLDER.reindexer | com.nextlevel.b2bbp.easy.archive.dbbackup.DBBackupReIndexerEASY |
B3P_LUCENE_INDEX_FOLDER.syncType | dbBackupArchive |
B3P_LUCENE_INDEX_FOLDER.syncClass | com.nextlevel.b2bbp.archive.dbbackup.DBBackupIndexSyncImpl |
B3P_LUCENE_INDEX_FOLDER.reindexFull | false |
Der Name der Eigenschaft bezieht sich auf den verwendeten Archiv Index, dieser kann abweichen und dient hier nur zur Veranschaulichung.
Über die Eigenschaft B3P_LUCENE_INDEX_FOLDER.reindexFull
steuert man, ob die EDI Nachricht aus dem Archiv bei der Reindizierung berücksichtigt werden soll.
Sobald Nachrichten nun archiviert werden, werden zusätzlich die Index Informationen in die DB Backup Tabelle geschrieben. Über den Re-Indizierungsmechanismus der B2B im IndexManagement können nun die Nachrichten entsprechend wiederhergestellt werden.
ArchiveBatchEASY
Klasse: com.nextlevel.b2bbp.easy.archive.ArchiveBatchEASY
Stapelweise Archivierung durch die B2B in das Easy Archiv. Neben diesem Job muss noch ein weiterer Job, ArchiveBatchVSSyncJob
eingerichtet werden, der im nachfolgenden Kapitel beschrieben wird.
Ziel
Die bereits existierende Implementation des B2B Easy Archiv-Konnektors (com.nextlevel.b2bbp.easy.archive.ArchiveEASY) sendet jedes Dokument einzeln in das Archiv und wartet auf die Bestätigung, markiert die Nachricht als archiviert und fährt dann mit der nächsten fort. Dieses Vorgehen stellt sicher dass jede Nachricht archiviert wird und das nur einmalig. Die Geschwindigkeit ist für das laufende Archivieren der Marktkommunikation ausreichend. Wenn sehr viele Nachrichten (die Kommunikation mehrerer Jahre) im Nachhinein archiviert werden müssen wird ein schnelleres Archivieren benötigt.
Da das Easy-Archiv einen stapelweisen Import unterstützt wurde dieser Weg gewählt.
Vorgehen
Der Archivjob wird wie bisher über den Scheduler gestartet, aber mit einem neuen Archiv-Konnektor. Die B2B ermittelt wie bisher die zu archivierenden Dokumente, teilt diese aber in Stapel einer vorgegebenen Größe auf. Im eingestellten Archivordner wird für jeden begonnenen Stapel ein neuer Unterordner angelegt. In diesen Ordner schreibt die B2B alle Dokumente dieses Stapels. Es wird eine Importdatei angelegt in der die Metadaten und der Pfad zum jeweiligen Dokument angegeben werden. Die Nachricht wird in der B2B mit dem Verarbeitungsstatus „Archivierungsbestätigung ausstehend“ markiert.
Easy
Der Importer des Easy-Archivsystems sucht im Archivordner periodisch nur nach Dateien mit der Endung .imp, den Importdateien. Diese werden inklusive der per Dateipfad angegeben Dokumente in das Easy Archiv importiert. Am Ende des Vorgangs werden die Import- und Dokument-Dateien je nach Verlauf in den Backup- oder den Error folder verschoben. In den Ordner, in dem die Importdatei gefunden wurde, schreibt Easy das Importlog.
Das Importlog wird in der B2B durch den ArchiveBatchVSSyncJob
ausgewertet, siehe unten.
Neuer Verarbeitungsstatus
- Verarbeitungsstatus „Archivierungsbestätigung ausstehend“ Nachrichten mit diesem VS dürfen genauso wie der VS „archiviert“ nicht für die Archivierung ausgewählt werden. Der DeleteJob darf sie aber im Gegensatz zu archivierten Nachrichten nicht löschen.
Importdatei
- Beispiel:
@FOLDER,FT:B2B_Netz,FN:Partner,FN:B2BMessageID,FN:MailMessageID,FN:RefNr,FN:Sender,FN:B2BSystem,BI:2001
^4041404000001^,^3c6a1371-6bf1-11e0-b399-00505699393a^,^65164821.1303374838646.JavaMail.B2B_Prod@SRV8701.txt^,^20788597^,^NETZ STROM | 9900154000008^,
^B2B Produktion^,^\\duit.loc\apps\easy\Uebergabe_B2B\Netz\Dateiname.txt^
@FOLDER,FT:B2B_Vertrieb,FN:Partner,FN:B2BMessageID,FN:MailMessageID,FN:RefNr,FN:Sender,FN:B2BSystem,BI:2001
^4041404000001^,^3c6a1371-6bf1-11e0-b399-00505699393a^,^65164821.1303374838646.JavaMail.B2B_Prod@SRV8701.txt^,^20788597^,^Vertieb STROM | 9900154000008^,
^B2B Produktion^,^\\duit.loc\apps\easy\Uebergabe_B2B\Vertrieb\Dateiname.txt^
@FOLDER,FT:B2B_BKV,FN:Partner,FN:B2BMessageID,FN:MailMessageID,FN:RefNr,FN:Sender,FN:B2BSystem,BI:2001
^4041404000001^,^3c6a1371-6bf1-11e0-b399-00505699393a^,^65164821.1303374838646.JavaMail.B2B_Prod@SRV8701.txt^,^20788597^,^BKV STROM | 9900154000008^,
^B2B Produktion^,^\\duit.loc\apps\easy\Uebergabe_B2B\BKV\Dateiname.txt^
@FOLDER,FT:B2B_EnergieGut,FN:Partner,FN:B2BMessageID,FN:MailMessageID,FN:RefNr,FN:Sender,FN:B2BSystem,BI:2001
^4041404000001^,^3c6a1371-6bf1-11e0-b399-00505699393a^,^65164821.1303374838646.JavaMail.B2B_Prod@SRV8701.txt^,^20788597^,^EnergieGut STROM | 9900154000008^,
^B2B Produktion^,^\\duit.loc\apps\easy\Uebergabe_B2B\EnergieGut\Dateiname.txt^
@FOLDER,FT:B2B_MEDL,FN:Partner,FN:B2BMessageID,FN:MailMessageID,FN:RefNr,FN:Sender,FN:B2BSystem,BI:2001
^4041404000001^,^3c6a1371-6bf1-11e0-b399-00505699393a^,^65164821.1303374838646.JavaMail.B2B_Prod@SRV8701.txt^,^20788597^,^MEDL STROM | 9900154000008^,
^B2B Produktion^,^\\duit.loc\apps\easy\Uebergabe_B2B\MEDL\Dateiname.txt^
Wird eine Importdatei für mehrere Dateien übergeben, so reicht eine Kopfzeile (z.B.: @FOLDER,FT:B2B_Netz,FN:Partner,FN:B2BMessageID,FN:MailMessageID,FN:RefNr,FN:Sender,FN:B2BSystem,BI:2001) pro Importdatei aus.
@Folder | Satzanfang |
---|---|
FT | Vorgang |
FN | Feldbeschreibung |
BI:2001 | Ablageort der Datei |
Importlog
Dateiname: easy_import.ImpLog
Diese Datei dient dazu den erfolgreichen Import in das Archiv zu bestätigen. Sie enthält zumindest die B2BmessageID und den in der Importdatei angegeben Dateinamen jeweils für jedes erfolgreich importierte Dokument.
- Beispiel:
pool:/Default/B2B
field:B2BMessageID=3c6a1371-6bf1-11e0-b399-00505699393a
field:filename=\\duit.loc\apps\easy\Uebergabe_B2B\Netz\Dateiname.txt
doc:EASY.B5A2E207423411E38C5A00FF75F3C00D
field:B2BMessageID=3c6a1371-6bf1-11e0-b399-00505699393a
field:filename=\duit.loc\apps\easy\Uebergabe_B2B\Netz\Dateiname.txt
doc:EASY.B5156F02423411E38C5A00FF75F3C00D
field:B2BMessageID=3c6a1371-6bf1-11e0-b399-00505699393a
field:filename=\duit.loc\apps\easy\Uebergabe_B2B\Netz\Dateiname.txt
doc:EASY.B5AF162F423411E38C5A00FF75F3C00D
field:B2BMessageID=3c6a1371-6bf1-11e0-b399-00505699393a
field:filename=\duit.loc\apps\easy\Uebergabe_B2B\Netz\Dateiname.txt
doc:EASY.B5A970CB423411E38C5A00FF75F3C00D
Konfiguration Global Properties
Eigenschaft | Wert |
---|---|
ARCHIVE_EASY_BATCH_SIZE | z.B. 1000 |
ARCHIVE_EASY_BATCH_PATH | z.B. C:\ArchiveBatch |
Konfiguration der Extension B3P_EASY_POOL_EXTENSION
In der Extension B3P_EASY_POOL_EXTENSION werden die relativen lese und schreib Pfade für die Archvierung konfiguriert.
Beispiel der Extension:
# Pfad für die Archivierung
WRITE_9999999999999=/NETZ/NETZ_B2B
WRITE_1111111111111=/NETZ/NETZ_B2B
WRITE_2222222222222=/NETZ/NETZ_B2B
WRITE_9999999998=/NETZ/NETZ_B2B
# Pfad für den Datenzugriff im Monitor
READ_9999999999999=/NON_SAP/B2B/NETZ
READ_1111111111111=/NON_SAP/B2B/NETZ
READ_2222222222222=/NON_SAP/B2B/NETZ
READ_9999999998=/NON_SAP/B2B/NETZ
ArchiveBatchEASYDBBackup
Klasse: com.nextlevel.b2bbp.easy.archive.ArchiveBatchEASYDBBackup
Diese Implementierung bietet die Funktionalität ArchiveBatchEASY zu erweitern, um im Fehlerfall die zu schreibenden Archiv-Index Einträge wieder anhand der Datenbank wiederherstellen zu können. Weitere Details sowie die B2B Konfiguration sind unter dem Abschnitt ArchiveEASYDBBackup zu finden.
ArchiveBatchVSSyncJob
Klasse: org.b2bbp.service.inbound.scheduled.ArchiveBatchVSSyncJob
Dieser Job wird nur zusammen mit ArchiveBatchEASY
verwendet. Der Job dient der Aktulisierung des VS Status von Nachrichten bei welchen vom Archivsystem die Bestätigung kam, dass die Nachricht erfolgreich archviert wurde. Der Status wird durch diesen Job von ARP auf ARC gesetzt. Der Job Crawlt die Bestätigungsdateien aus dem Dateisystem. Es werden Dateien mit der Endung .ImpLog
berücksichtigt. Diese müssen field:B2BMessageID= enthalten. Bei allen so angegebenen MessageIds wird der Status umgesetzt. Wenn alle Dokumente einer Nachricht als archiviert bestätigt wurden wird die Nachricht mit dem Verarbeitungsstatus „archiviert“ markiert.
Konfiguration
Es handelt sich hier um einen SchedulerRegisterService.
Über die Global Property ARCHIVE_EASY_BATCH_PATH wird angegeben, wo die .ImpLog Dateien
zu finden sind. Diese Property wird aber immer im Kontext des ArchiveBatchEASY schon gesetzt und muss nicht angepasst werden.
Propertyname | default |
---|---|
ARCHIVE_EASY_BATCH_PATH | pflicht |
ARCHIVE_EASY_BATCH_SIZE | z.B. 1000 //default alle msgids aus alle .ImpLog Dateien |
B3P_LOG_FILE_MIN_AGE_IN_MS | default 10,000 |
B3P_FILE_NAME_PATTERNS | default ImpLog\Z, Empfehlung: . (any file) |
B3P_PATH_NAME_PATTERNS | default . (any path) |
B3P_TARGET_VS_STATE | default ARC |
B3P_EXPECTED_VS_STATE | default ARP |
B3P_VS_STATE_ERR | default “” |
B3P_CC_ERR | default “” |
B3P_REMOVE_ALL_FILES | default false |
Schritte des Jobs
- lese Logs aus archiveEasyBatchPath, nutze dabei auch die definierten Filter (filename pattern, pathname pattern, file min age)
- folgende Konfiguration des Pfades: Ordner mit Unterordnern, diese enthalten die logs. ein log muss folgende zeile enthalten: field:B2BMessageID=<msgid>
- lese messageIds aus den Logs
- update den VS-Status der msgs von expected zu target
- prüfe dabei, ob updates fehlschlagen
- aktualsiere fehlgeschlagene msgids zum Status err (wenn konfiguriert)
- aktualisiere fehlschlag msgids clearing code (wenn konfiguriert)
- verschiebe die Logdateien mit Fehlschlag msgids in einen clearing ordner: archiveEasyBatchPath/../log_incomplete
- lösche die restlichen Logdateien
EasyApiXml
Klasse: com.nextlevel.b2bbp.easy.archive.EasyApiXml
Diese Klasse archiviert über den EASY XML Server (Version EASY ENTERPRISE.i) Einrichtung des Schedulers
Dies sind die spezifischen Einstellungen zur Einrichtung des Easy Archivers über XML:
B3P_SCHEDULER_REGISTER_CLASSNAME = org.b2bbp.service.inbound.scheduled.AsynchronousArchiveJob
B3P_ARCHIVE_TYPE = com.nextlevel.b2bbp.easy.archive.xml.EasyXmlArchiver
B3P_INDEX_TYPE = org.b2bbp.service.inbound.scheduled.ArchiveIndexer
B3P_SCHEDULER_NAME = Archiver Easy
Global Properties
B3P_EASY_USER = <EASY Benutzername>
B3P_EASY_PASSWORD = <b2b-verschlüsseltes Passwort>
B3P_EASY_OVER_XML_URL = <EASY-URL>
B3P_EASY_ARCHIVE_NAME = <Archivname in EASY-Schreibweise, etwa $(#DEMO)\MEDIA>
B3P_EASY_SENDING_SYSTEM = <Systembezeichnung, wo archiviert wird>
B3P_LUCENE_INDEX_FOLDER = <Pfad zum Verzeichnis für die Ablage des Archiv-Indexes>
B3P_ARCHIVE_AS2_MESSAGE_MONITOR_IMPL = com.nextlevel.b2bbp.easy.archive.AS2ArchiveMonitorEASY
B3P_ARCHIVE_MESSAGE_MONITOR_IMPL = com.nextlevel.b2bbp.easy.archive.EmailArchiveMonitorEASY
B3P_ARCHIVE_MONITOR_IMPL = com.nextlevel.b2bbp.easy.archive.ArchiveMessageMonitorEASY
Ebis-Anbindung
Um ein Easy Archiv über Ebis anzubinden müssen folgende GlobalProperties gesetzt werden:
B3P_EASY_POOL_EXTENSION | Name der Extension, in der die Zuordnung von Sender-ILN zu View im Easy-Archiv(Siehe Aufbau der Extension unten) |
B3P_EASY_EBIS_LINK | Link zum EBIS-Server (Standartport ist 9090) |
B3P_LOGICAL_SYSTEM_NAME | Name des logischen Archivsystems |
B3P_EASY_USER | Benutzername |
B3P_EASY_PASSWORD | Password (verschlüsselt) |
B3P_EASY_ARCHIVE_ID_ATTRIBUTE | Attributname der zur Suche genutzt wird Standartmäßig: B2BArchiveID |
B3P_ARCHIVE_AS2_MESSAGE_MONITOR_IMPL | com.nextlevel.b2bbp.easy.archive.AS2ArchiveMonitorEASY |
B3P_ARCHIVE_MONITOR_IMPL | com.nextlevel.b2bbp.easy.archive.ArchiveMessageMonitorEASY |
B3P_ARCHIVE_MESSAGE_MONITOR_IMPL | com.nextlevel.b2bbp.easy.archive.EmailArchiveMonitorEASY |
GLOBAL_PROP_EASY_OVER_EBIS | true |
Der Aufbau der Extension ist wie folgt:
READ_<Sender-ILN>=@<Viewname>
Archivierung über die Ebis-Schnittstelle wird aktuell nicht unterstüzt.
View Me Edit Me