Archivierungen fürs EASY-Archiv

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.

Tags: archivierung
View Me   Edit Me