Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: replace fedora.server with fcrepo.server

...

Code Block
xml
xml
borderStylesolid
<module role="fedorafcrepo.server.management.Management"
  class="fedorafcrepo.server.management.ManagementModule">
 <!-- ManagementModule configuration params go here -->
</module>

...

Code Block
xml
xml
borderStylesolid
<module role="fedorafcrepo.server.management.Management"
  class="fedorafcrepo.server.journal.Journaler">
</module>
<module role="fedorafcrepo.server.management.ManagementDelegate"
  class="fedorafcrepo.server.management.ManagementModule">
 <!-- ManagementModule configuration params go here -->
</module>

...

  • journalMode
    Sets the operating mode of the Journaler module. Optional. Default is "normal".
    • normal
      API calls are performed normally, and a Journal is written.
    • recover
      The Journal is read and executed, while API calls from outside are rejected.
  • continueOnHashError
    Permits the recovery to continue, even if the repository hash does not match the value recorded in the Journal file. Optional. Applies only to recover mode. The default is "false".
    • true
      Errors in the repository hash value will be recorded in the recovery log, but will not cause the recovery to terminate.
    • false
      Any error in the repository hash value will cause the recovery to terminate immediately.
  • journalWriterClassname
    Specifies the configurable component that writes the Journal during normal mode operation. This class must be an extension of fedorafcrepo.server.journal.JournalWriter. Required for normal mode. There is no default. Note that this component may require additional parameters.
    • fedorafcrepo.server.journal.readerwriter.multifile.MultiFileJournalWriter
      Writes a collection of Journal files to a specified directory on disk. Best class for most operating scenarios.
    • fedorafcrepo.server.journal.readerwriter.singlefile.SingleFileJournalWriter
      Writes a single Journal file. This writer is likely to be useful only for testing, since the Journal file will quickly become too large to handle during normal operation.
  • journalReaderClassname
    Specifies the configurable component that reads the Journal during recover mode operation. This class must be an extension of fedorafcrepo.server.journal.JournalReader. Required for recover mode. There is no default. Note that this component may require additional parameters.
    • fedorafcrepo.server.journal.readerwriter.multifile.MultiFileJournalReader
      Reads a collection of Journal files from a specified directory on disk. As each file is processed, it is moved to an "archive" directory. When all files have been processed, recovery is complete. Good class for a recovery scenario.
    • fedorafcrepo.server.journal.readerwriter.multifile.LockingFollowingJournalReader
      Monitors a specified directory on disk for the existence of new Journal files. As each file is found, it is processed and moved to the "archive" directory. When all files have been processed, the server will continue to poll the directory for new files. This reader enables a server to "follow" another. It also accepts "lock requests" to pause processing and allow an orderly shutdown (see "lockRequestedFilename" and "lockAcceptedFilename" options below). Best class for a following scenario.
    • fedorafcrepo.server.journal.readerwriter.multifile.MultiFileFollowingJournalReader
      Same as LockingFollowingJournalReader, but does not recognize the "lockRequestedFilename" and "lockAcceptedFilename" options.
    • fedorafcrepo.server.journal.readerwriter.singlefile.SingleFileJournalReader
      Reads a single Journal file. When the file has been processed, recovery is complete. This reader is likely to be useful only for testing, since the Journal file will quickly become too large to handle during normal operation.
  • journalRecoveryLogClassname
    Specifies the configurable component that writes the recovery log during recover mode operation. This class must be an extension of fedorafcrepo.server.journal.recoverylog.JournalRecoveryLog. Required for recover mode. There is no default. Note that this component may require additional parameters.
    • fedorafcrepo.server.journal.recoverylog.RenamingJournalRecoveryLog
      Writes log messages to a disk file as soon as they are initiated. The path specified in the recoveryLogFilename option is used as the basis for the filename. A timestamp will be appended to the filename in order to avoid a problem with later logs overwriting earlier ones. While recovery is in progress, the filename is preceded by an underscore character. When recovery is complete, the underscore character is removed. This class is best for most operating scenarios.
    • fedorafcrepo.server.journal.recoverylog.UnbufferedJournalRecoveryLog
      Writes log messages to a disk file as soon as they are initiated. Writes to a file specified in the recoveryLogFilename option.
    • fedorafcrepo.server.journal.recoverylog.BufferedJournalRecoveryLog
      Accumulates log messages in a StringBuffer and writes them to disk only when recovery is complete. This component is useful for testing, since it gives a clear external indication of completion. It will almost certainly be too memory-intensive for normal operation.

...

These options are recognized by the reader and writer components in the fedorafcrepo.server.journal.readerwriter.singlefile package.

...

These options are recognized by the reader and writer components in the fedorafcrepo.server.journal.readerwriter.multifile package:

...

The MulticastJournalWriter is configured with one or more Transport objects, each of which writes an identical set of Journal files to its destination. So far, these Transport classes are available:

  • fedorafcrepo.server.journal.readerwriter.multicast.LocalDirectoryTransport
    Writes a set of Journal files to a directory on the local file system. This functions very much like a MultiFileJournalWriter, adapted for multicasting.
  • fedorafcrepo.server.journal.readerwriter.multicast.RmiTransport
    Writes a set of Journal files to an instance of RmiJournalReceiver running on the same or another server.

...

Code Block
xml
xml
borderStylesolid
<module role="fedorafcrepo.server.management.Management" class="fedorafcrepo.server.journal.Journaler">
  <param name="journalFileSizeLimit" value="100M"/>
  <param name="journalFileAgeLimit" value="1H"/>
  <param name="journalWriterClassname"
         value="fedorafcrepo.server.journal.readerwriter.multicast.MulticastJournalWriter"/>
  <param name="transport.local.classname"
         value="fedorafcrepo.server.journal.readerwriter.multicast.LocalDirectoryTransport"/>
  <param name="transport.local.directoryPath" value="/usr/local/journals/archiveFiles"/>
  <param name="transport.local.crucial" value="true"/>
  <param name="transport.follow1.classname"
         value="fedorafcrepo.server.journal.readerwriter.multicast.rmi.RmiTransport"/>
  <param name="transport.follow1.crucial" value="false"/>
  <param name="transport.follow1.hostName" value="follow1.nsdl.org"/>
  <param name="transport.follow1.service" value="RmiJournalReceiver"/>
  <param name="transport.follow2.classname"
         value="fedorafcrepo.server.journal.readerwriter.multicast.rmi.RmiTransport"/>
  <param name="transport.follow2.crucial" value="false"/>
  <param name="transport.follow2.hostName" value="follow2.nsdl.org"/>
  <param name="transport.follow2.service" value="RmiJournalReceiver"/>
</module>

...

Code Block
xml
xml
borderStylesolid
<module role="fedorafcrepo.server.management.Management"
     class="fedorafcrepo.server.journal.Journaler">
  <param name="journalDirectory"
     value="/usr/local/ndr-content/journals/journalFiles"/>
  <param name="journalWriterClassname"
     value="fedorafcrepo.server.journal.readerwriter.multifile.MultiFileJournalWriter"/>
  <param name="journalFileSizeLimit" value="100M" />
  <param name="journalFileAgeLimit" value="1H" />
</module>
<module role="fedorafcrepo.server.management.ManagementDelegate"
     class="fedorafcrepo.server.management.ManagementModule">
 <!-- ManagementModule configuration params go here -->
</module>

...

Code Block
xml
xml
borderStylesolid
<module role="fedorafcrepo.server.management.Management"
        class="fedorafcrepo.server.journal.Journaler">
  <param name="journalMode" value="recover"/>
  <param name="journalDirectory"
         value="/usr/local/ndr-content/journals/journalFiles"/>
  <param name="archiveDirectory"
         value="/usr/local/ndr-content/journals/archiveFiles"/>
  <param name="journalReaderClassname"
         value="fedorafcrepo.server.journal.readerwriter.multifile.MultiFileJournalReader"/>
  <param name="journalRecoveryLogClassname"
         value="fedorafcrepo.server.journal.recoverylog.RenamingJournalRecoveryLog"/>
  <param name="recoveryLogFilename"
         value="/usr/local/ndr-content/journals/journal.recovery.log"/>
</module>
<module role="fedorafcrepo.server.management.ManagementDelegate"
        class="fedorafcrepo.server.management.ManagementModule">
 <!-- ManagementModule configuration params go here -->
</module>

...

Code Block
xml
xml
borderStylesolid
<module role="fedorafcrepo.server.management.Management"
        class="fedorafcrepo.server.journal.Journaler">
  <param name="journalMode" value="recover" />
  <param name="journalDirectory"
         value="/usr/local/ndr-content/journals/journalFiles"/>
  <param name="archiveDirectory"
         value="/usr/local/ndr-content/journals/archiveFiles"/>
  <param name="journalReaderClassname"
         value="fedorafcrepo.server.journal.readerwriter.multifile.LockingFollowingJournalReader"/>
  <param name="lockRequestedFilename"
     value="/usr/local/ndr-content/journals/StopAcceptingJournals.lock"/>
  <param name="lockAcceptedFilename"
         value="/usr/local/ndr-content/journals/AcceptedJournalStop.lock"/>
  <param name="journalRecoveryLogClassname"
         value="fedorafcrepo.server.journal.recoverylog.RenamingJournalRecoveryLog"/>
  <param name="recoveryLogFilename"
         value="/usr/local/ndr-content/journals/journal.recovery.log"/>
  <param name="followPollingInterval" value="10"/>
</module>
<module role="fedorafcrepo.server.management.ManagementDelegate"
        class="fedorafcrepo.server.management.ManagementModule">
 <!-- ManagementModule configuration params go here -->
</module>

...

No Format
2006-06-15T09:45:36.605-0400: Event: method='getNextPid',
            file='C:\fedoraJournal20060615.134531.152Z',
            entry='2006-06-15T09:45:30.167-0400'
    context=fedorafcrepo.server.journal.entry.JournalEntryContext
        environmentAttributes
            urn:fedora:names:fedora:2.1:environment:httpRequest:authType
                BASIC
            urn:fedora:names:fedora:2.1:environment:httpRequest:security
                urn:fedora:names:fedora:2.1:environment:httpRequest:security-insecure
            urn:fedora:names:fedora:2.1:environment:currentDate
                2006-06-15Z
            urn:fedora:names:fedora:2.1:environment:currentTime
                13:45:30.027Z
            urn:fedora:names:fedora:2.1:environment:httpRequest:sessionStatus
                invalid
            urn:fedora:names:fedora:2.1:environment:httpRequest:scheme
                http
            urn:fedora:names:fedora:2.1:environment:httpRequest:clientIpAddress
                127.0.0.1
            urn:fedora:names:fedora:2.1:environment:httpRequest:contentLength
                576
            urn:fedora:names:fedora:2.1:environment:httpRequest:clientFqdn
                localhost
            urn:fedora:names:fedora:2.1:environment:httpRequest:serverIpAddress
                127.0.0.1
            urn:fedora:names:fedora:2.1:environment:httpRequest:serverPort
                8080
            urn:fedora:names:fedora:2.1:environment:currentDateTime
                2006-06-15T13:45:30.027Z
            urn:fedora:names:fedora:2.1:environment:httpRequest:messageProtocol

                urn:fedora:names:fedora:2.1:environment:httpRequest:messageProtocol-soap
            urn:fedora:names:fedora:2.1:environment:httpRequest:method
                POST
            urn:fedora:names:fedora:2.1:environment:httpRequest:contentType
                text/xml; charset=utf-8
            urn:fedora:names:fedora:2.1:environment:httpRequest:serverFqdn
                localhost
            urn:fedora:names:fedora:2.1:environment:httpRequest:protocol
                HTTP/1.1
        subjectAttributes
            fedoraRole
                administrator
            urn:fedora:names:fedora:2.1:subject:loginId
                fedoraAdmin
        actionAttributes
        resourceAttributes
            urn:fedora:names:fedora:2.1:resource:object:nPids
                4
        recoveryAttributes
            info:fedora/fedora-system:def/recovery#pidList
                newPIDs:1
                newPIDs:2
                newPIDs:3
                newPIDs:4
        password='*********'
        noOp=false
        now=false
    arguments
        numPids='4'
        namespace='newPIDs'
2006-06-15T09:45:36.714-0400: Call complete:getNextPid

...