Oracle File system Extension

OFsX@sourceforge.org

Intro

Overview

  1. OFsX utilizes:
  2. OFsX will run in any Java application container that supports SI. This version uses EclipseRT Virgo (Virgo).
  3. In order to write, copy, move or delete files from PL/SQL, two steps are required:
    1. A PL/SQL package, OFSX_UTL, is used to enqueue a message containing fully qualified file path(s). If the file is to be created, the contents of the file are in the Message<String> payload.
    2. The OFsX SI component dequeues the message & dispatches it per an operation header: delete, write, etc.
  4. File reading involves three steps:
    1. A PL/SQL package, OFSX_UTL, is used to enqueue a message with operation header read telling the OFsX SI app to read data from an arbitrary file system location.
    2. The OFsX SI component then loads the data into T$OFSX_DATA.
    3. Thereafter the calling app can process its data in T$OFSX_DATA.

USE

  1. WRITE | CREATE: Any PL/SQL application that needs to write data to a file on the file system must invoke ofsx_utl.write, which enqueues a Message<String> with destination file system location header & file contents payload. The message is dequeued by OFsX SI app & payload written to location indicated in header. TODO: FLAG for existing files to be overwritten?
  2. MOVE | RENAME: Any PL/SQL application that needs to move a file on the file system must invoke ofsx_utl.move, which enqueues a Message<String> with source & destination file system location headers. The message is dequeued by OFsX SI app & source file is moved to destination location.
  3. COPY: Any PL/SQL application that needs to copy a file to a new file system location must invoke ofsx_utl.copy, which enqueues a Message<String> with source & destination file system location headers. The message is dequeued by OFsX SI app & source file is copied to destination location.
  4. DELETE: Any PL/SQL application that needs to delete a file from the file system must invoke ofsx_utl.remove, which enqueues a Message<String> with source & destination file system location headers. The message is dequeued by OFsX SI app & source file is copied to destination location.
  5. READ | GET | IMPORT:
    1. Any PL/SQL application that needs to read a file from the file system must invoke ofsx_utl.import.A, which enqueues a Message<String> with source file system location header.
    2. The message is dequeued by OFsX SI app, which calls oft_utl.import.B to load the specified source file into OFsX.T$OFSX_DATA.
    3. Later, the calling app can process the file data in OFsX.T$OFSX_DATA.

TODO

  1. Use Maven to deploy builds to SF.net
  2. Similarly, get ofsx-[version].jar into a Maven repository. Some links:
  3. In alternative, write instructions for local Maven install
  4. Update all Maven plug-ins, etc
  5. Issue: XE can't use JMS types. See PEbell. So,
  6. Write end users' step-by-step HOWTO for each operation: DELETE, MOVE, etc.
  7. Create Dia SVGs showing interaction of all components for each step
  8. Write example PL/SQL app & JUnit tests to execute
  9. Replace Log4J with more standard Java logging?
  10. Runtime logging changes? Write JMX for controlling log levels? Or some other means?
  11. Test deployments in other containers
  12. Replace T$OFSX_DATA table with a blocking deq that waits for response, where response carries requested file data?

Links