IFS-21030 - ?

Hello,
I have this error:
oracle.ifs.common.IfsException: IFS-21030: Database operation timed out
java.sql.SQLException: ORA-01013: user requested cancel of current operation
I need as soon as possible some explanation about this, and possible causes,
because I could not find information anywhere.
Thank you.

The CMSDK has time-outs in place for operations and for searches.
Use the Web admin tool and look at any of the ServiceConfiguration objects. You will find the following properties:
IFS.SERVICE.SESSION.DefaultSearchTimeoutPeriod
IFS.SERVICE.SessionOperationTimeoutPeriod
The first property defaults to one minute (60 seconds) and the second defaults to five minutes (300 seconds). You may change these as you see fit. (Make sure to change the ServiceConfiguration that is in use by the Servers in your Node.)

Similar Messages

  • Ifs-21030 Database operation timed out

    Hi,
    We have installed cmsdk 9.0.4.2.2 with oas10g 10.1.2.0.2. The application runs fine, but sometimes we got the following error:
    [AJPRequestHandler-ApplicationServerThread-6] ERROR cmsdk.CmsdkUtil - Error with gettting document
    oracle.ifs.common.IfsException: IFS-21030: Database operation timed out
    java.sql.SQLException: ORA-01013: user requested cancel of current operation.
    I have set the IFS.SERVICE.SESSION.DefaultSearchTimeoutPeriod, but it doesn't help. Normally the documents are displayed immediately, but when the error occurs, it can take 30 min or more. Mostly, but not always, the error occurs on monday morning, while getting the first or second document after the weekend in which the application is not used. Sometimes the first documents comes up immediately, and the second gives the error.
    Are the parameters, agents, sessions, .. to configure to avoid this problem?
    Can anyone help me with this?
    Regards,
    Els

    I forgot to mention that we use a webservice. This is the complete error from the OC4J instance, found in the <oracle home>\opmn\logs dir
    oracle.ifs.common.IfsException: IFS-21030: Database operation timed out
    java.sql.SQLException: ORA-01013: user requested cancel of current operation
         at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:137)
         at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:698)
         at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:630)
         at oracle.jdbc.driver.T2CPreparedStatement.doDefineExecuteFetch(T2CPreparedStatement.java:1142)
         at oracle.jdbc.driver.T2CPreparedStatement.execute_for_rows(T2CPreparedStatement.java:1010)
         at oracle.jdbc.driver.OracleStatement.execute_maybe_describe(OracleStatement.java:1022)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1109)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2932)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:2973)
         at oracle.ifs.server.S_LibrarySession.executeQuery(S_LibrarySession.java:16561)
         at oracle.ifs.server.S_LibraryObjectSelector.findObjectById(S_LibraryObjectSelector.java:556)
         at oracle.ifs.server.S_LibraryObjectSelector.selectObjectById(S_LibraryObjectSelector.java:494)
         at oracle.ifs.server.S_LibrarySession.constructLibraryObjectData(S_LibrarySession.java:8024)
         at oracle.ifs.server.S_LibrarySession.getLibraryObjectData(S_LibrarySession.java:7811)
         at oracle.ifs.server.S_LibrarySession.getLibraryObject(S_LibrarySession.java:8283)
         at oracle.ifs.server.S_LibrarySession.getPublicObject(S_LibrarySession.java:8407)
         at oracle.ifs.server.S_LibrarySession.DMgetPublicObjectData(S_LibrarySession.java:8051)
         at oracle.ifs.beans.LibrarySession.DMgetPublicObjectData(LibrarySession.java:13209)
         at oracle.ifs.beans.LibrarySession.getPublicObject(LibrarySession.java:4944)
         at be.kindengezin.cmsdk.CmsdkUtil.getDocument(CmsdkUtil.java:74)
         at be.kindengezin.cmsdk.CmsdkUtil.getDocumentMimeType(CmsdkUtil.java:91)
         at be.kindengezin.cmsdk.content.CmsdkContentServlet.doGet(CmsdkContentServlet.java:41)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:824)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:224)
         at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:133)
         at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
         at java.lang.Thread.run(Thread.java:534)
    kind regards,
    Els

  • IFS-21030 Database Operation time out

    Hi everyone,
    I really need help with this one. I try to search for a folder with a certain value for a custom attribute. It ALWAYS takes a very long time, but some times it returns successfully and sometimes it gives me a "Database Operation timed out" IFSException.
    I tried to change the attribute setting to make it indexed, but it didn't help.
    I'm using Oracle Files 9.0.2 (which, I think uses CM SDK 9.0.3, or at least this is the jar I'm using on the client side).
    This doesn't happen with all folder queries, just the query where I use the
    FolderRestrictQualification.setMultiLevel(true)
    Can anyone help me with this?

    setMultiLevel(true) enables folder recursion, of course, which can be an expensive operation, depending on how many levels deep you need to go.
    how many subfolders (and documents) are we talking about here?
    .rich

  • Error in starting iFS from NT 4.0

    Hi,
    Im having difficulty in starting "ifsstart" and I am getting the following error message in the the ifsagent & ifsprotocol log files.
    IfsException in starting ServerManager; FATAL
    oracle.ifs.common.IfsException: IFS-10620: Unable to construct connection pool
    oracle.ifs.common.IfsException: IFS-10633: Unable to create library connection
    oracle.ifs.common.IfsException: IFS-10600: Unable to construct library connection
    java.sql.SQLException: Error while trying to retrieve text for error ORA-12705
    Server Manager exiting.
    Any ideas?

    If you get an error like:
    java.sql.SQLException: Error while trying to retrieve text for error ORA-xxxxx, it usually means that you can't even access the database at all. I think that you might no be able to use SQL*Plus at this point. Of course, you can't start iFS without having a connection to the database. This is what the error means.

  • Oracle ifs and BEA weblogic

    Oracle ifs and BEA weblogic
    We have one application server with weblogic and and ifs 1.0.9 , and one db server with Oracle 8.1.7.
    with the following configuration:
    Web server
    appl server with weblogic 6.0 and ifs 1.1.9
    Oracle 8i Enterprise with interMedia text
    We need to use the iFS API call for our application.
    As I know, weblogic 6.0 support JDK1.3 but ifs 1.1.9 supports up to JDK1.2.
    Is this configuration possible?
    Any conflict if two version JDK co-exist inside same machine?
    Any suggestion?
    If I separate the appl. server into two machines, that is,
    one server installed with weblogic, the other one installed with ifs.
    How could I make use the ifs API call from appl. server?
    Is there any configuration guides for this setting?
    Thanks a lot.
    null

    <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica">quote:</font><HR>Originally posted by Luis:
    The iFS API is 100% pure Java. You can use it from any other Java application, be it JSP, EJB, or a standalone application.
    So it really comes down to the CLASSPATH. The iFS API is split among a set of .jar files, and some of the configuration information is stored in .properties files that are outside of these .jar files. All of this stuff needs to be in the CLASSPATH of whatever JVM is calling the iFS API.
    The iFS API uses the Oracle JDBC driver to communicate with the Oracle database. This is another requirement. You can't use another JDBC driver; you have to use ours.
    So again, it's all about configuration.<HR></BLOCKQUOTE>
    Would you mind to share more detail on configurating weblogic to integrate the iFS API?
    null

  • Read open file from IFS system

    Hi,
    The special programm create a new file on the IFS-volume and write some data in to this file. The program doesn`t closing this file (working some hours).
    Can I read data from this file immediatly (stream access)?
    System:
    Oracle 9.0.1 WinNT
    IFS 9.0.1
    regards,
    Anton

    Hi,
    First you need to upload the PDF file from FTP server. For that you can refer the following link
    Re: acess file on FTP server
    Once you upload the PDF file, you can convert the PDF to OTF and OTF to Text. But I am not sure on the function modules that will do this.

  • Attn: Installing the Sample Applications from the ifs Development Kit

    There are a number of problems with the sample Applications included in the
    Developer's kit. These need to manually fixed in order to get the demos to work.
    #1: Solaris Only
    The install of the iFS Development Kit, replaces the existing adk.jar with a new
    one containing some additional classes. Unfortunately the install process does not
    set the correct privileges on the new version of adk.jar. Please ensure that the
    file $ORACLE_HOME/ifs/lib/adk.jar is world readable.
    Bug # 1304730
    This issue will be resolved on the next drop of the Oracle Internet File System
    development kit.
    #2: Generic
    There is a problem with the way in which the login.jsp establishes a connection to
    the repository. The current code makes incorrect assumptions about the name of the
    iFS Service and the schema password.
    The following changes are required.
    In order to connect to the repository 4 pieces of information are required.
    1. The iFS User Name
    2. The iFS User's password
    3. The properties file to be used
    4. The database password of the user who owns the iFS Schema
    The Login.jsp needs to be altered so that it requests these four arguments before
    attempting to establish a connection to the repository.
    (The current version only requests username and password).
    All four arguments need to be provided as arguments to the login method on the
    underlying JavaBean that the JSP invokes when it want to open a connection
    to the repository.
    ***************** HERE IS THE REVISED CODE FOR INSURANCE APPLICATIONS ************
    ********************************** LOGIN.JSP *************************************
    <%@ page import = "ifsdevkit.sampleapps.insurance.InsuranceLogin" %>
    <%@ page import = "oracle.ifs.adk.security.IfsHttpLogin" %>
    <html><head>
    <jsp:useBean id="inslogin" scope="session" class="ifsdevkit.sampleapps.insurance.InsuranceLogin" />
    <jsp:setProperty name="inslogin" property="*"/>
    <%
    String REDIRECT_PATH = "/public/examples/insuranceApp/claims";
    boolean loggedIn = false;
    if (inslogin.getSession() != null && inslogin.getResolver() != null)
    // Use existing insurance login
    loggedIn = true;
    else
    // No existing insurance login
    IfsHttpLogin login = (IfsHttpLogin) request.getSession(true).getValue("IfsHttpLogin");
    if (login != null && login.getSession() != null && login.getResolver() != null)
    // Use existing IfsHttpLogin login
    inslogin.init(login.getSession(), login.getResolver());
    loggedIn = true;
    if (!loggedIn)
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    String serviceName = request.getParameter("serviceName");
    String schemaPassword = request.getParameter("schemaPassword");
    if (username != null && password != null &&
    !username.trim().equals("") && !password.trim().equals(""))
    // Login using username/password
    try
    if (serviceName == null &#0124; &#0124; serviceName.trim().equals(""))
    serviceName = "IfsDefault";
    inslogin.init(username, password, serviceName, schemaPassword);
    request.getSession(true).putValue("IfsHttpLogin", inslogin);
    loggedIn = true;
    catch (Exception e)
    %>
    <SCRIPT LANGUAGE="JavaScript1.2">
    alert("The username or Password was not valid, please try again.");
    </SCRIPT>
    <%
    if (loggedIn)
    // Redirect to the directory where the claim files reside
    response.sendRedirect(REDIRECT_PATH);
    else
    %>
    <title>Insurance Demo App Login</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body bgcolor="#FFFFFF">
    <form METHOD=POST NAME="loginform" ACTION="login.jsp">
    <table>
    <tr>
    <td><b>Username:</b></td>
    <td><input type="text" name="username" value=""></td>
    </tr>
    <tr>
    <td><b>Password:</b></td>
    <td><input type="password" name="password" value=""></td>
    & lt;/tr>
    <tr>
    <td><b>Service Name:</b></td>
    <td><input type="text" name="serviceName" value="IfsDefault"></td>
    </tr>
    <tr>
    <td><b>Schema Password:</b></td>
    <td><input type="password" name="schemaPassword" value=""></td>
    </tr>
    <tr>
    <td> </td>
    <td> </td>
    </tr>
    <tr>
    <td>
    <input type="submit" value="Log in">
    </td>
    <td>
    <input type="reset" value="Reset">
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    <% } %>
    *************************** END INSURANCE LOGIN.JSP ******************************
    This code has been changed so that it requests the four agruments that are required
    to connect to the repository and passes them to the login method on the underlying
    bean. Note that we have provided the complete source code to this file in order to
    make it simple to deploy the revised version of the code. Simply cut and paste this
    code into a new file called login.jsp. Copy the File into the iFS
    repository folder /ifs/jsp-bin/ifsdevkit/sampleapps/insurance.
    ****************************** INSURANCELOGIN.JAVA *******************************
    package ifsdevkit.sampleapps.insurance;
    * Copyright (c) 2000 Oracle Corporation. All rights reserved.
    import java.util.Locale;
    import javax.servlet.http.HttpSessionBindingEvent;
    import oracle.ifs.beans.DirectoryUser;
    import oracle.ifs.beans.FolderPathResolver;
    import oracle.ifs.beans.LibrarySession;
    import oracle.ifs.beans.LibraryService;
    import oracle.ifs.common.CleartextCredential;
    import oracle.ifs.common.ConnectOptions;
    import oracle.ifs.common.IfsException;
    import oracle.ifs.adk.security.IfsHttpLogin;
    * The login bean for the Insurance demo app.
    * <p>
    * This class provide the login info. The class implements the
    * <code>IfsHttpLogin</code> interface so it can share login data with other
    * login beans.
    * @author Edward Yu
    * @version 1.0
    * @see IfsHttpLogin
    public class InsuranceLogin implements IfsHttpLogin
    * The <code>LibrarySession</code>.
    private LibrarySession m_session;
    * The <code>FolderPathResolver</code>.
    private FolderPathResolver m_resolver;
    * Default constructor required by the jsp spec for the USEBEAN tag
    * @exception IfsException
    public InsuranceLogin()
    throws IfsException
    * Make a connection to iFS
    * @param username The username to be used for login.
    * @param password The password to be used for login.
    * @param serviceName The service name to be used for login.
    * @param schemaPassword The schema password to be used for login.
    * @exception IfsException if operation failed.
    public void init(String username, String password, String serviceName,
    String schemaPassword)
    throws IfsException
    LibraryService service = new LibraryService();
    CleartextCredential me = new CleartextCredential(username, password);
    ConnectOptions connection = new ConnectOptions();
    connection.setLocale(Locale.getDefault());
    connection.setServiceName(serviceName);
    connection.setServicePassword(schemaPassword);
    m_session = service.connect(me, connection);
    m_resolver = new FolderPathResolver(m_session);
    m_resolver.setRootFolder();
    DirectoryUser user = m_session.getDirectoryUser();
    if (user.isAdminEnabled())
    m_session.setAdministrationMode(true);
    * Initialize the login bean.
    * <p>
    * The default constructor does not set the necessary fields so it needs
    * to be set instantiation.
    * @param session The <code>LibrarySession</code> object.
    * @param resolver The <code>FolderPathResolver</code> object.
    public void init(LibrarySession session, FolderPathResolver resolver)
    m_session = session;
    m_resolver = resolver;
    * Return the login's session object.
    * @return The <code>LibrarySession</code> object.
    public LibrarySession getSession()
    return m_session;
    * Return the login's path resolver.
    * @return The <code>FolderPathResolver</code> object.
    public FolderPathResolver getResolver()
    return m_resolver;
    * Called when this object is bound to the HTTP session object.
    * @param event The event when the object is bound to the Http session.
    public void valueBound(HttpSessionBindingEvent event)
    // do nothing
    * Called when this object is unbound from the HTTP session object.
    * @param event The event when the object is unbound to the Http session.
    public void valueUnbound(HttpSessionBindingEvent event)
    m_resolver = null;
    try
    if (m_session != null)
    m_session.disconnect();
    catch (IfsException e)
    e.printStackTrace();
    finally
    m_session = null; // release the resources
    *****************************END INSURANCELOGIN.JAVA ******************************
    This code has been changed so that it accepts the four agruments that are required
    to connect to the repository and uses them to connect to the repository. Note that
    we have provided the complete source code to this file in order to make it simple
    to deploy the revised version of the code. Simply cut and paste this
    code into a new file called. Save the file on the native file system
    in a file called InsuranceLogin.java in the directory
    $ORACLE_HOME/ifs/ifsdevkit/sampleapps/insurance/
    *************** HERE IS THE REVISED CODE FOR WEB COMMAND APPLICATIONS ************
    ********************************** LOGIN.JSP *************************************
    <%@ page import = "ifsdevkit.sampleapps.webcommandapp.WebCommandLogin" %>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="Author" content="Patricia Li">
    <title>Login</title>
    </head>
    <jsp:useBean id="wclogin" scope="session" class="ifsdevkit.sampleapps.webcommandapp.WebCommandLogin" />
    <jsp:setProperty name="wclogin" property="*"/>
    <%
    String REDIRECT_PATH = "/ifs/ifsdevkit/sampleapps/WebCommandApp/html/main.html";
    boolean loggedIn = false;
    if (wclogin.getSession() != null)
    // Use existing WebCommand login
    loggedIn = true;
    else
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    String serviceName = request.getParameter("serviceName" );
    String schemaPassword = request.getParameter("schemaPassword");
    if (username != null && password != null)
    // Login to iFS
    try
    wclogin.init(username, password, serviceName, schemaPassword);
    request.getSession(true).putValue("IfsHttpLogin", wclogin);
    loggedIn = true;
    catch (Exception e)
    %>
    <SCRIPT LANGUAGE="JavaScript1.2">
    alert("The credentials are not valid; please try again.");
    </SCRIPT>
    <%
    if (loggedIn == true)
    // Go to main page...
    response.sendRedirect(REDIRECT_PATH);
    else
    %>
    <title>Web Command App Login</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body bgcolor="#FFFFFF">
    <h2>WebCommand Application Login</h2>
    <form METHOD=POST NAME="loginform" ACTION="login.jsp">
    <table>
    <tr>
    <td><b>Username:</b></td>
    <td><input type="text" name="username" value=""></td>
    </tr>
    <tr>
    <td><b>Password:</b></td>
    <td><input type="password" name="password" value=""></td>
    </tr>
    <tr>
    <td><b>Service Name:</b></td>
    <td><input type="text" name="serviceName" value="IfsDefault"></td>
    </tr>
    <tr>
    <td><b>Schema Password:</b></td>
    <td& gt;<input type="password" name="schemaPassword" value=""></td>
    </tr>
    <tr>
    <td> </td>
    <td> </td>
    </tr>
    <tr>
    <td>
    <input type="submit" value="Log in">
    </td>
    <td>
    <input type="reset" value="Reset">
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>
    <% } %>
    ************************* END WEB COMMAND LOGIN.JSP ******************************
    This code has been changed so that it requests the four agruments that are required
    to connect to the repository and passes them to the login method on the underlying
    bean. Note that we have provided the complete source code to this file in order to
    make it simple to deploy the revised version of the code. Simply cut and paste this
    code into a new file called login.jsp. Copy the File into the iFS repository folder
    /ifs/jsp-bin/ifsdevkit/sampleapps/WebCommandApp
    ****************************WEBCOMMANDLOGIN.JAVA**********************************
    package ifsdevkit.sampleapps.webcommandapp;
    import java.util.Locale;
    import oracle.ifs.beans.DirectoryUser;
    import oracle.ifs.beans.FolderPathResolver;
    import oracle.ifs.beans.LibrarySession;
    import oracle.ifs.beans.LibraryService;
    import oracle.ifs.common.CleartextCredential;
    import oracle.ifs.common.ConnectOptions;
    import oracle.ifs.common.IfsException;
    import oracle.ifs.adk.filesystem.IfsFileSystem;
    import oracle.ifs.adk.security.IfsHttpLogin;
    import javax.servlet.http.HttpSessionBindingEvent;
    * WebCommand application that illustrates the usage of the
    * File System API.
    * @version 1.0
    * @pub
    public class WebCommandLogin implements IfsHttpLogin
    private LibrarySession m_session; // Session
    private FolderPathResolver m_resolver; // Resolver
    private IfsFileSystem m_ifs; // File System object
    * Default constructor required by the jsp spec for the USEBEAN tag
    public WebCommandLogin()
    throws IfsException
    * Make a connection to iFS
    * @pub
    public void init(String username, String password, String serviceName,
    String schemaPassword)
    throws IfsException
    LibraryService service = new LibraryService();
    CleartextCredential cred = new CleartextCredential(username, password);
    ConnectOptions options = new ConnectOptions();
    options.setLocale(Locale.getDefault());
    options.setServiceName(serviceName);
    options.setServicePassword(schemaPassword);
    m_session = service.connect(cred, options);
    m_resolver = new FolderPathResolver(m_session);
    m_resolver.setRootFolder();
    m_ifs = new IfsFileSystem(m_session);
    DirectoryUser user = (DirectoryUser) m_session.getDirectoryUser();
    if (user.isAdminEnabled())
    m_session.setAdministrationMode(true);
    * Use the existing connection.
    * The default constructor does not set the necessary fields.
    * @pub
    public void init(LibrarySession session, FolderPathResolver resolver)
    throws IfsException
    m_session = session;
    m_resolver = resolver;
    m_ifs = new IfsFileSystem(m_session);
    * Return the login's session
    * @pub
    public LibrarySession getSession()
    return m_session;
    * Return the login's path resolver
    * @pub
    public FolderPathResolver getResolver()
    return m_resolver;
    * Return the IfsFileSystem API object
    * @pub
    public IfsFileSystem getIfsFileSystem()
    return m_ifs;
    * Implementation of valueBound
    * @pub
    public void valueBound(HttpSessionBindingEvent e)
    * Implementation of valueUnbound
    * @pub
    public void valueUnbound(HttpSessionBindingEvent e)
    try
    m_session.disconnect();
    catch (IfsException ie)
    ************************* END WEBCOMMANDLOGIN.JAVA *******************************
    This code has been changed so that it accepts the four agruments that are required
    to connect to the repository and uses them to connect to the repository. Note that
    we have provided the comple te source code to this file in order to make it simple
    to deploy the revised version of the code. Simply cut and paste this code into a
    new file called WebCommandLogin.java in the directory
    $ORACLE_HOME/ifs/ifsdevkit/sampleapps/webcommandapp/
    Compile the java class.
    Copy the classfile to $ORACLE_HOME/ifs/custom_classes/ifsdevkit/sampleapps/webcommandapp/
    Stop and Start all of the protocol servers.
    This issue will be resolved on the next drop of the Oracle Internet File System
    development kit.
    #3. Making the BaseRendererClass available to the Protocol Servers
    Note this step is not required if you have the 1.0.8.3 patch set installed.
    Install the BaseRenderer Class. The BaseRenderer class is delivered in the jar file
    ifsdevkit.jar and can be used to simplify the task of creating a custom renderer.
    Unfortunately the jar file containing this class is not referenced in any of the Classpaths
    used by the iFS protocol servers. This means that they will not be able to load any
    customer renderers that extend BaseRenderer. In order to make BaseRenderer available
    to the Protocol Servers it need to be placed in the appropriate directory under
    <ORACLE_HOME>/ifs/custom_classes.
    Extract the class from the ifsdevkit.jar.
    ifsdevkit.jar is located in <ORACLE_HOME>/ifs/lib after the devkit has been installed.
    jar -xvf ifsdevkit.jar
    extracted: META-INF/MANIFEST.MF
    extracted: BaseRenderer.class
    Create the following directory heirachy in <ORACLE_HOME>/ifs/custom classes
    oracle/ifs/server/renderers
    Copy <ORACLE_HOME>/ifs/lib/BaseRenderer.class to
    <ORACLE_HOME/ifs/custom_classes/oracle/ifs/server/renderers
    That should do it.
    Regards
    Mark D. Drake
    null

    Moving to Top

  • Fix many web access problems with IFS 9.0.1 on Solaris (and other OS's)...

    When the installation is done according to the documentation,
    web access does not work because the scripts that add entries to
    the jserv.properties file add duplicate references to
    wrapper.env and wrapper.classpath. Look at the jserv.properties
    file below and look at the remarked-out (#) lines of the
    duplicate references. For example, look at the references to the
    wrapper.env=LD_LIBRARY_PATH
    Oracle, please note this bug so the web access problems are
    minimized when the product is intstalled.
    Thank you,
    William T.
    # Apache JServ Configuration
    File #
    ################################ W A R N I N G
    # Unlike normal Java properties, JServ configurations have some
    important
    # extensions:
    # 1) commas are used as token separators
    # 2) multiple definitions of the same key are concatenated in
    a
    # comma separated list.
    # Execution parameters
    # The Java Virtual Machine interpreter.
    # Syntax: wrapper.bin=[filename] (String)
    # Note: specify a full path if the interpreter is not visible in
    your path.
    wrapper.bin=/d3/Apache/jdk/bin/java
    # Arguments passed to Java interpreter (optional)
    # Syntax: wrapper.bin.parameters=[parameters] (String)
    # Default: NONE
    wrapper.bin.parameters=-Xms64m
    wrapper.bin.parameters=-Xmx128m
    # Apache JServ entry point class (should not be changed)
    # Syntax: wrapper.class=[classname] (String)
    # Default: "org.apache.jserv.JServ"
    # Arguments passed to main class after the properties filename
    (not used)
    # Syntax: wrapper.class.parameters=[parameters] (String)
    # Default: NONE
    # Note: currently not used
    # PATH environment value passed to the JVM
    # Syntax: wrapper.path=[path] (String)
    # Default: "/bin:/usr/bin:/usr/local/bin" for Unix systems
    # "c:\(windows-dir);c:\(windows-system-dir)" for Win32
    systems
    # Notes: if more than one line is supplied these will be
    concatenated using
    # ":" or ";" (depending wether Unix or Win32) characters
    # Under Win32 (windows-dir) and (windows-system-dir) will
    be
    # automatically evaluated to match your system
    requirements
    # CLASSPATH environment value passed to the JVM
    # Syntax: wrapper.classpath=[path] (String)
    # Default: NONE (Sun's JDK/JRE already have a default classpath)
    # Note: if more than one line is supplied these will be
    concatenated using
    # ":" or ";" (depending wether Unix or Win32) characters.
    JVM must be
    # able to find JSDK and JServ classes and any utility
    classes used by
    # your servlets.
    # Note: the classes you want to be automatically reloaded upon
    modification
    # MUST NOT be in this classpath or the classpath of the
    shell
    # you start the Apache from.
    wrapper.classpath=/d3/Apache/jdk/lib/tools.jar
    wrapper.classpath=/d3/Apache/Jserv/libexec/ApacheJServ.jar
    wrapper.classpath=/d3/Apache/Jsdk/lib/jsdk.jar
    # An environment name with value passed to the JVM
    # Syntax: wrapper.env=[name]=[value] (String)
    # Default: NONE on Unix Systems
    # SystemDrive and SystemRoot with appropriate values on
    Win32 systems
    wrapper.env=PATH=/d3/bin
    # An environment name with value copied from caller to Java
    Virtual Machine
    # Syntax: wrapper.env.copy=[name] (String)
    # Default: NONE
    # Uncomment the following lines to set the default locale and
    NLS_LANG
    # setting based on the environment variables.
    # wrapper.env.copy=LANG
    # wrapper.env.copy=NLS_LANG
    # Copies all environment from caller to Java Virtual Machine
    # Syntax: wrapper.env.copyall=true (boolean)
    # Default: false
    # Protocol used for signal handling
    # Syntax: wrapper.protocol=[name] (String)
    # Default: ajpv12
    # General parameters
    # Set the default IP address or hostname Apache JServ binds (or
    listens) to.
    # If you have a machine with multiple IP addresses, this address
    # will be the one used. If you set the value to localhost, it
    # will be resolved to the IP address configured for the locahost
    # on your system (generally this is 127.0.0.1). This feature is
    so
    # that one can have multiple instances of Apache JServ listening
    on
    # the same port number, but different IP addresses on the same
    machine.
    # Use bindaddress=* only if you know exactly what you are doing
    here,
    # as it could let JServ wide open to the internet.
    # You must understand that JServ has to answer only to Apache,
    and should not
    # be reachable by nobody but mod_jserv. So localhost is usually a
    # good option. The second best choice would be an internal
    network address
    # (protected by a firewall) if JServ is running on another
    machine than Apache.
    # Ask your network admin.
    # "*" may be used on boxes where some of the clients get
    connected using
    # "localhost"and others using another IP addr.
    # Syntax: bindaddress=[ipaddress] or [localhost] or [*]
    # Default: localhost
    bindaddress=localhost
    # Set the port Apache JServ listens to.
    # Syntax: port=[1024,65535] (int)
    # Default: 8007
    port=8007
    # Servlet Zones parameters
    # List of servlet zones Apache JServ manages
    # Syntax: zones=[servlet zone],[servlet zone]... (Comma
    separated list of String)
    # Default: NONE
    zones=root
    # Configuration file for each servlet zone (one per servlet zone)
    # Syntax: [servlet zone name as on the zones list].properties=
    [full path to configFile]
    (String)
    # Default: NONE
    # Note: if the file could not be opened, try using absolute
    paths.
    root.properties=/d3/Apache/Jserv/etc/zone.properties
    # Thread Pool parameters
    # Enables or disables the use of the thread pool.
    # Syntax: pool=true (boolean)
    # Default: false
    # WARNING: the pool has not been extensively tested and may
    generate
    deadlocks.
    # For this reason, we advise against using this code in
    production environments.
    pool=false
    # Indicates the number of idle threads that the pool may contain.
    # Syntax: pool.capacity=(int)>0
    # Default: 10
    # NOTE: depending on your system load, this number should be low
    for contantly
    # loaded servers and should be increased depending on load
    bursts.
    pool.capacity=10
    # Indicates the pool controller that should be used to control
    the
    # level of the recycled threads.
    # Syntax: pool.controller=[full class of controller] (String)
    # Default: org.apache.java.recycle.DefaultController
    # NOTE: it is safe to leave this unchanged unless special
    recycle behavior
    # is needed. Look at the "org.apache.java.recycle" package
    javadocs for more
    # info on other pool controllers and their behavior.
    pool.controller=org.apache.java.recycle.DefaultController
    # Security parameters
    # Enable/disable the execution of org.apache.jserv.JServ as a
    servlet.
    # This is disabled by default because it may give informations
    that should
    # be restricted.
    # Note that the execution of Apache JServ as a servlet is
    filtered by the web
    # server modules by default so that both sides should be enabled
    to let this
    # service work.
    # This service is useful for installation and configuration
    since it gives
    # feedback about the exact configurations Apache JServ is using,
    but it should
    # be disabled when both installation and configuration processes
    are done.
    # Syntax: security.selfservlet=true (boolean)
    # Default: false
    # WARNING: disable this in a production environment since may
    give reserved
    # information to untrusted users.
    security.selfservlet=true
    # Set the maximum number of socket connections Apache JServ may
    handle
    # simultaneously. Make sure your operating environment has
    enough file
    # descriptors to allow this number.
    # Syntax: security.maxConnections=(int)>1
    # Default: 50
    security.maxConnections=50
    # Backlog setting for very fine performance tunning of JServ.
    # Unless you are familiar to sockets leave this value commented
    out.
    # security.backlog=5
    # List of IP addresses allowed to connect to Apache JServ. This
    is a first
    # security filtering to reject possibly unsecure connections and
    avoid the
    # overhead of connection authentication.
    # <warning>
    # (please don't use the following one unless you know what you
    are doing :
    # security.allowedAddresses=DISABLED
    # allows connections on JServ'port from entire internet.)
    # You do need only to allow YOUR Apache to talk to JServ.
    # </warning>
    # Default: 127.0.0.1
    # Syntax: security.allowedAddresses=[IP address],[IP Address]...
    (Comma
    separated list of IP addresses)
    #security.allowedAddresses=127.0.0.1
    # Enable/disable connection authentication.
    # NOTE: unauthenticated connections are a little faster since
    authentication
    # handshake is not performed at connection creation.
    # WARNING: authentication is disabled by default because we
    believe that
    # connection restriction from all IP addresses but localhost
    reduces your
    # time to get Apache JServ to run. If you allow other addresses
    to connect and
    # you don't trust it, you should enable authentication to
    prevent untrusted
    # execution of your servlets. Beware: if authentication is
    disabled and the
    # IP address is allowed, everyone on that machine can execute
    your servlets!
    # Syntax: security.authentication=[true,false] (boolean)
    # Default: true
    security.authentication=false
    # Authentication secret key.
    # The secret key is passed as a file that must be kept secure
    and must
    # be exactly the same of those used by clients to authenticate
    themselves.
    # Syntax: security.secretKey=[secret key path and filename]
    (String)
    # Default: NONE
    # Note: if the file could not be opened, try using absolute
    paths.
    #security.secretKey=./etc/jserv.secret.key
    # Length of the randomly generated challenge string (in bytes)
    used to
    # authenticate connections. 5 is the lowest possible choice to
    force a safe
    # level of security and reduce connection creation overhead.
    # Syntax: security.challengeSize=(int)>5
    # Default: 5
    #security.challengeSize=5
    # Logging parameters
    # Enable/disable Apache JServ logging.
    # WARNING: logging is a very expensive operation in terms of
    performance. You
    # should reduced the generated log to a minumum or even disable
    it if fast
    # execution is an issue. Note that if all log channels (see
    below) are
    # enabled, the log may become really big since each servlet
    request may
    # generate many Kb of log. Some log channels are mainly for
    debugging
    # purposes and should be disabled in a production environment.
    # Syntax: log=[true,false] (boolean)
    # Default: true
    log=true
    # Set the name of the trace/log file. To avoid possible
    confusion about
    # the location of this file, an absolute pathname is recommended.
    # This log file is different than the log file that is in the
    # jserv.conf file. This is the log file for the Java portion of
    Apache
    # JServ.
    # On Unix, this file must have write permissions by the owner of
    the JVM
    # process. In other words, if you are running Apache JServ in
    manual mode
    # and Apache is running as user nobody, then the file must have
    its
    # permissions set so that that user can write to it.
    # Syntax: log.file=[log path and filename] (String)
    # Default: NONE
    # Note: if the file could not be opened, try using absolute
    paths.
    log.file=/d3/Apache/Jserv/logs/jserv.log
    # Enable the timestamp before the log message
    # Syntax: log.timestamp=[true,false] (boolean)
    # Default: true
    log.timestamp=true
    # Use the given string as a data format
    # (see java.text.SimpleDateFormat for the list of options)
    # Syntax: log.dateFormat=(String)
    # Default: [dd/MM/yyyy HH:mm:ss:SSS zz]
    log.dateFormat=[dd/MM/yyyy HH:mm:ss:SSS zz]
    # Since all the messages logged are processed by a thread
    running with
    # minimum priority, it's of vital importance that this thread
    gets a chance
    # to run once in a while. If it doesn't, the log queue overflow
    occurs,
    # usually resulting in the OutOfMemoryError.
    # To prevent this from happening, two parameters are used:
    log.queue.maxage
    # and log.queue.maxsize. The former defines the maximum time for
    the logged
    # message to stay in the queue, the latter defines maximum
    number of
    # messages in the queue.
    # If one of those conditions becomes true (age > maxage || size
    maxsize),# the log message stating that fact is generated and the log
    queue is
    # flushed in the separate thread.
    # If you ever see such a message, either your system doesn't
    live up to its
    # expectations or you have a runaway loop (probably, but not
    necessarily,
    # generating a lot of log messages).
    # WARNING: Default values are lousy, you probably want to tweak
    them and
    # report the results back to the development team.
    # Syntax: log.queue.maxage = [milliseconds]
    # Default: 5000
    log.queue.maxage = 5000
    # Syntax: log.queue.maxsize = [integer]
    # Default: 1000
    log.queue.maxsize = 1000
    # Enable/disable logging the channel name
    # Default: false
    # log.channel=false
    # Enable/disable channels, each logging different actions.
    # Syntax: log.channel.[channel name]=[true,false] (boolean)
    # Default: false
    # Info channel - quite a lot of informational messages
    # hopefully you don't need them under normal circumstances
    # log.channel.info=true
    # Servlets exception, i.e. exception caught during
    # servlet.service() processing are monitored here
    # you probably want to have this one switched on
    log.channel.servletException=true
    # JServ exception, caught internally in jserv
    # we suggest to leave it on
    log.channel.jservException=true
    # Warning channel, it catches all the important
    # messages that don't cause JServ to stop, leave it on
    log.channel.warning=true
    # Servlet log
    # All messages logged by servlets. Probably you want
    # this one to be switched on.
    log.channel.servletLog=true
    # Critical errors
    # Messages produced by critical events causing jserv to stop
    log.channel.critical=true
    # Debug channel
    # Only for internal debugging purposes
    # log.channel.debug=true
    #wrapper.classpath=/d3/ord/jlib/ordim.zip
    #wrapper.classpath=/d3/ord/jlib/ordhttp.zip
    # Oracle XSQL Servlet
    wrapper.classpath=/d3/lib/oraclexsql.jar
    # Oracle JDBC
    wrapper.classpath=/d3/jdbc/lib/classes12.zip
    # Oracle XML Parser V2 (with XSLT Engine)
    wrapper.classpath=/d3/lib/xmlparserv2.jar
    # Oracle XML SQL Components for Java
    wrapper.classpath=/d3/rdbms/jlib/xsu12.jar
    # XSQLConfig.xml File location
    wrapper.classpath=/d3/xdk/admin
    # Oracle BC4J
    wrapper.classpath=/d3/ord/jlib/ordim.zip
    wrapper.classpath=/d3/ord/jlib/ordvir.zip
    wrapper.classpath=/d3/ord/jlib/ordhttp.zip
    wrapper.classpath=/d3/BC4J/lib/jndi.jar
    wrapper.classpath=/d3/BC4J/lib/jbomt.zip
    wrapper.classpath=/d3/BC4J/lib/javax_ejb.zip
    wrapper.classpath=/d3/BC4J/lib/jdev-rt.jar
    wrapper.classpath=/d3/BC4J/lib/jbohtml.zip
    wrapper.classpath=/d3/BC4J/lib/jboremote.zip
    wrapper.classpath=/d3/BC4J/lib/jdev-cm.jar
    wrapper.classpath=/d3/BC4J/lib/jbodomorcl.zip
    wrapper.classpath=/d3/BC4J/lib/jboimdomains.zip
    wrapper.classpath=/d3/BC4J/lib/collections.jar
    wrapper.classpath=/d3/Apache/Apache/htdocs/onlineorders_html
    #wrapper.classpath=/d3/Apache/Apache/htdocs/OnlineOrders_html/Onl
    ineOrders.jar
    # The following classpath entries are necessary for EJBs to run
    in IAS or DB when
    present
    wrapper.classpath=/d3/lib/aurora_client.jar
    wrapper.classpath=/d3/lib/vbjorb.jar
    wrapper.classpath=/d3/lib/vbjapp.jar
    # Oracle Servlet
    wrapper.classpath=/d3/lib/servlet.jar
    # Oracle Java Server Pages
    wrapper.classpath=/d3/jsp/lib/ojsp.jar
    # Oracle Util
    wrapper.classpath=/d3/jsp/lib/ojsputil.jar
    # Oracle Java SQL
    wrapper.classpath=/d3/sqlj/lib/translator.zip
    # Oracle JDBC
    #wrapper.classpath=/d3/jdbc/lib/classes12.zip
    # SQLJ runtime
    wrapper.classpath=/d3/sqlj/lib/runtime12.zip
    # Oracle Messaging
    wrapper.classpath=/d3/rdbms/jlib/aqapi.jar
    wrapper.classpath=/d3/rdbms/jlib/jmscommon.jar
    # OJSP environment settings
    #wrapper.env=ORACLE_HOME=/d3
    # The next line should be modified to reflect the value of the
    SID for your
    webserver.
    #wrapper.env=ORACLE_SID=cmpdb
    #wrapper.env=LD_LIBRARY_PATH=/d3/lib
    ## Enable the flag below if you are using jdk 1.2.2_05a or above
    #wrapper.env=JAVA_COMPILER=NONE
    # Advanced Queuing - AQXML
    wrapper.classpath=/d3/rdbms/jlib/aqxml.jar
    #wrapper.classpath=/d3/rdbms/jlib/xsu12.jar
    #wrapper.classpath=/d3/lib/xmlparserv2.jar
    wrapper.classpath=/d3/lib/xschema.jar
    #wrapper.classpath=/d3/jlib/jndi.jar
    wrapper.classpath=/d3/jlib/jta.jar
    oemreporting.properties=/d3/Apache/Jserv/oemreporting/oemreportin
    g.properties
    zones = root, oemreporting
    wrapper.classpath=/d3/jlib/share-opt-1_1_9.zip
    wrapper.classpath=/d3/jlib/caboshare-opt-1_0_3.zip
    wrapper.classpath=/d3/jlib/marlin-opt-1_0_7.zip
    wrapper.classpath=/d3/jlib/tecate-opt-1_0_4.zip
    wrapper.classpath=/d3/jlib/ocelot-opt-1_0_2.zip
    wrapper.classpath=/d3/jlib/regexp.jar
    wrapper.classpath=/d3/jlib/sax2.jar
    #wrapper.classpath=/d3/jlib/servlet.jar
    wrapper.bin.parameters= -DORACLE_HOME=/d3
    #wrapper.env=LD_LIBRARY_PATH=/d3/lib32
    wrapper.env.copy=DISPLAY
    wrapper.bin.parameters=-DORACLE_HOME=/d3
    #wrapper.classpath=/d3/lib/vbjorb.jar
    #wrapper.classpath=/d3/lib/vbjapp.jar
    wrapper.classpath=/d3/classes/classesFromIDLVisi
    wrapper.classpath=/d3/jlib/swingall-1_1_1.jar
    wrapper.classpath=/d3/jlib/ewtcompat3_3_15.jar
    wrapper.classpath=/d3/jlib/ewt-3_3_18.jar
    wrapper.classpath=/d3/jlib/share-1_1_9.jar
    wrapper.classpath=/d3/jlib/help-3_2_9.jar
    wrapper.classpath=/d3/jlib/ice-5_06_3.jar
    wrapper.classpath=/d3/jdbc/lib/classes111.zip
    wrapper.classpath=/d3/classes
    wrapper.classpath=/d3/jlib/oembase-9_0_1.jar
    wrapper.classpath=/d3/jlib/oemtools-9_0_1.jar
    wrapper.classpath=/d3/jlib
    wrapper.classpath=/d3/jlib/javax-ssl-1_1.jar
    wrapper.classpath=/d3/jlib/jssl-1_1.jar
    wrapper.classpath=/d3/jlib/netcfg.jar
    wrapper.classpath=/d3/jlib/dbui-2_1_2.jar
    #wrapper.classpath=/d3/lib/aurora_client.jar
    #wrapper.classpath=/d3/lib/xmlparserv2.jar
    wrapper.classpath=/d3/network/jlib/netmgrm.jar
    wrapper.classpath=/d3/network/jlib/netmgr.jar
    wrapper.classpath=/d3/network/tools
    wrapper.classpath=/d3/jlib/kodiak-1_2_1.jar
    wrapper.classpath=/d3/sysman/jlib/netchart360.jar
    wrapper.classpath=/d3/jlib/pfjbean.jar
    wrapper.env=SHLIB_PATH=/d3/lib32
    wrapper.env=LIBPATH=/d3/lib32
    wrapper.classpath=/d3/ultrasearch/lib/isearch_midtier.jar
    wrapper.classpath=/d3/ultrasearch/lib/isearch_query.jar
    wrapper.classpath=/d3/ultrasearch/lib/jgl3.1.0.jar
    wrapper.classpath=/d3/lib/mail.jar
    wrapper.classpath=/d3/lib/activation.jar
    wrapper.classpath=/d3/ultrasearch/jsp/admin/config
    # Additions for iFS
    ## DO NOT REMOVE OR ALTER THE FOLLOWING LINE ....
    # iFS true
    # Uncomment if you want to use the same Jserv as other
    applications
    wrapper.classpath=/d3/9ifs/custom_classes
    wrapper.classpath=/d3/9ifs/settings
    wrapper.classpath=/d3/9ifs/lib/adk.jar
    wrapper.classpath=/d3/9ifs/lib/email.jar
    wrapper.classpath=/d3/9ifs/lib/http.jar
    wrapper.classpath=/d3/9ifs/lib/release.jar
    wrapper.classpath=/d3/9ifs/lib/repos.jar
    wrapper.classpath=/d3/9ifs/lib/utils.jar
    wrapper.classpath=/d3/9ifs/lib/webui.jar
    wrapper.classpath=/d3/9ifs/lib/provider.jar
    wrapper.classpath=/d3/jlib/javax-ssl-1_2.jar
    wrapper.classpath=/d3/jlib/jssl-1_2.jar
    wrapper.env=ORACLE_HOME=/d3
    wrapper.env=ORACLE_SID=cmpdb
    wrapper.env=LD_LIBRARY_PATH=/d3/lib:/d3/ctx/lib:/d3/lib32
    wrapper.env=NLS_LANG=.US7ASCII
    ## Additions for the iFS zone
    # Uncomment if you want to use the same Jserv as other
    applications
    zones=ifs
    ifs.properties=/d3/Apache/Jserv/etc/ifs.properties
    # End iFS section

    About your home page; Manually set up Firefox with the window(s) and tab(s)
    the way you want them to be. Then;
    '''''Firefox Options > General > Homepage'''''.
    Press the button labeled ''''Use Current'''.'
    =====================================
    Open a new window or tab. In the address bar, type '''''about:config'''''.
    If a warning screen comes up, press the '''''Be Careful''''' button.
    This is where Firefox finds information it needs to run.
    At the top of the screen is a search bar. Enter '''''browser.newtab.url'''''
    and press enter. '''''browser.newtab.url'''''
    tells Firefox what to show when a new tab is opened.
    If you want, right click and select '''''Modify'''''. You can change the
    setting to;<BR><BR>about:home (Firefox default home page),<BR>
    about:newtab (shows the sites most visited),<BR>
    about:blank (a blank page),<BR>
    or you can enter any web page you want.<BR><BR>
    The same instructions are used for the new window setting, listed as
    '''''browser.startup.homepage'''''.

  • 500 Internal Server Error in iFS

    I tried to modify the login screen image and ended up with an
    error, thereby losing access to ifs login web interface.
    I stumbled across a similar question on TechNet that expressed
    the same problem (editing the login page and then losing it).
    The question received a response that the next version of IFS
    will compensate for this problem. However I am in immediate
    need of a resolution to the situation and cannot wait for the
    next version.
    How do I get the page back?!?
    I appreciate any help in the situation.
    Thanks
    -Kingsley

    It looks like the Apache/JServ CLASSPATH needs to be edited to
    include a .jar file that contains the sun/tools/javac/Main
    class. If you have a Sun JDK installed on the machine, edit the
    Apache/JServ CLASSPATH so that it includes the
    $JAVA_HOME/lib/tools.jar file. The file you need to edit is in
    the $ORACLE_HOME/Apache/Jserv/etc directory, but it depends on
    what version of iFS you're using, and if the ORACLE_HOME was
    installed with iAS or with the database. But just search through
    the files looking for "CLASSPATH" and see if tools.jar is
    missing. If it is, add it in and see if that fixes the problem.
    Remember that you need to reference the full (absolute) path to
    the .jar file.

  • How to insert Data in a table from iFS.

    Hi,
    We have an application that communicates with the customer through iFS. I am asked to add a new functionality to that application that will populate a
    table in the database with customer id, customer inserted file name and internal file name after rename. I would
    really appreciate any input on how can I achieve this
    from our Custom Application using iFS.
    Is it possible to achieve this through LibrarySession API or I have to write a separate JDBC application which will be called from our current application to do the task.
    Thanks,
    SA

    Your question is little perplexing.
    If you're using XML SQL Utility from
    the commandline, just use putXML.
    java OracleXML putXML
    null

  • How to access IFS document contents in PL/SQL procedure ?

    I am interested in using IFS as a way to load documents
    (PDF, HTML, RFT, text...) in an Oracle database table, and
    then access the table via a regular application Server.
    I understand that the right way to do this is via a Java API
    mapped on top of IFS.
    But we already have a fairly sophisticated web application using
    Java and PL/SQL procedures so that I would ideally need
    to write a PL/SQL procedure such as :
    function get_document (ifs_file_name in varchar, ifs_file_path in varchar) return clob
    For this I need to outline how to query the IFS schema using SQL.
    Any idea which table to query ?
    Have a nice day

    Many thanks to Chris Schneider : it works. Withing a few hours
    I was able to make a servlet with a file name as a parameter which sends back
    the file contents (in our case its a PDF file).
    Here is a sample servlet which uses this access scheme :
    import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    public class TestIFS extends HttpServlet
    * Handle the GET and HEAD methods by building a simple web page.
    * HEAD is just like GET, except that the server returns only the
    * headers (including content length) not the body we write.
    public void doGet (HttpServletRequest request,
    HttpServletResponse response)
    throws ServletException, IOException
    //PrintWriter out;
    String title = "Test d'acchs IFS";
    // set content type and other response header fields first
    response.setContentType("application/pdf");
    // then write the data of the response
              ServletOutputStream outbin = response.getOutputStream();
              String theQuery=
         "SELECT "+
         " odm_publicobject.name object_name"+
         ", odmm_contentstore.id content_id"+
         ", odm_format.mimetype"+
         ", odmm_contentstore.globalindexedblob "+
         "FROM odm_publicobject"+
         ", odm_document"+
         ", odm_contentobject"+
         ", odmm_contentstore"+
         ", odm_format "+
         "WHERE odm_publicobject.id = odm_document.id "+
         "AND odm_document.contentobject = odm_contentobject.id "+
         "AND odm_contentobject.content = odmm_contentstore.id "+
         "AND odm_contentobject.format = odm_format.id "+
         "AND odm_publicobject.name = ";
              theQuery += "'" + request.getParameter("fic") + "'";
              try {
                   System.out.println("TestIFS debut");
                   DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
                   Connection conn = DriverManager.getConnection ("jdbc:oracle:oci8:@LXP9","ifssys","ifssys");
                   Statement stmt = conn.createStatement ();
                   ResultSet rset = stmt.executeQuery (theQuery);
                   while (rset.next ()) {
                        byte b[] = new byte[10000000];               
                        b = rset.getBlob(4).getBytes (1,10000000);
                        outbin.write (b);
                   rset.close();
                   System.out.println("TestIFS fin");
              catch (Exception e) {
    (beware mime type is forced to PDF, and file size max 10Mb)

  • Error while trying to register user to iFS 9.0.1

    Hi ,
    We are getting following error while trying to register user with our custom application. When I checked the forums it says the unique constraint might be the problem but I don't see any unique constraint violation in my exception trace. We are using 9.0.1 with 9.0.1 Database.
    Here is the stack trace:
    oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
    java.sql.SQLException: ORA-00600: internal error code, arguments: [25012], [10], [0], [], [], [], [], []
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:184)
         at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:1768)
         at oracle.jdbc.oci8.OCIDBAccess.executeFetch(OCIDBAccess.java:1380)
         at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1868)
         at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1787)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2377)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:427)
         at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:492)
         at oracle.ifs.server.S_LibrarySession.execute(S_LibrarySession.java:14319)
         at oracle.ifs.server.S_LibraryObject.insertRow(S_LibraryObject.java:3251)
         at oracle.ifs.server.S_LibraryObject.insertRows(S_LibraryObject.java:3150)
         at oracle.ifs.server.OperationState.executeAtomicOperations(OperationState.java:487)
         at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java:2716)
         at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.java:7922)
         at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7963)
         at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7945)
         at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_LibrarySession.java:7604)
         at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySession.java:7901)
         at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySession.java:5345)
         at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySession.java:2973)
         at oracle.ifs.adk.user.UserManager.createDirectoryUser(UserManager.java:1122)
         at oracle.ifs.adk.user.UserManager.createUser(UserManager.java:987)
         at com.cisco.as.ifs.management.fndUserManager.createUser(fndUserManager.java:131)
    Thanks
    Rajesh Basawa

    Rajesh,
    I was wondering did you manage to get this problem fixed we are having a similar problem when creating an iFS object; the following is the stack trace
    oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
    [Mon Jun 16 14:19:47 BST 2003] stderr: java.sql.SQLException: ORA-00600: internal error code, arguments: [25012], [5], [0], [], [], [], [], []
    [Mon Jun 16 14:19:47 BST 2003] stderr:
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.jdbc.oci8.OCIDBAccess.check_error(OCIDBAccess.java:1759)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.jdbc.oci8.OCIDBAccess.executeFetch(OCIDBAccess.java:1371)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1852)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1771)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2361)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:422)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:487)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.server.S_LibrarySession.execute(S_LibrarySession.java:14319)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.server.S_LibraryObject.insertRow(S_LibraryObject.java:3251)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.server.S_LibraryObject.insertRows(S_LibraryObject.java:3150)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.server.OperationState.executeAtomicOperations(OperationState.java:487)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.server.S_LibraryObject.createInstance(S_LibraryObject.java:2716)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.server.S_LibrarySession.newLibraryObject(S_LibrarySession.java:7922)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7963)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.server.S_LibrarySession.newPublicObject(S_LibrarySession.java:7945)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.server.S_LibrarySession.DMNewPublicObject(S_LibrarySession.java:7604)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.beans.LibrarySession.DMNewPublicObject(LibrarySession.java:7901)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.beans.LibrarySession.NewPublicObject(LibrarySession.java:5345)
    [Mon Jun 16 14:19:47 BST 2003] stderr:      at oracle.ifs.beans.LibrarySession.createPublicObject(LibrarySession.java:2973)

  • Executing a stored procedure from an Ifs Program

    I have a need to execute a stored procedure in another schema
    within the same database, and I need to receive an OUT parameter
    to continue processing. The oracle.ifs.server.sql.IfsConnection
    is not in my class path. Can someone tell me which jar file to
    adde to my classpath to have this funcitonality that IFS claim.
    Regards,
    Jeff

    Guys I need help with this one as soon as possible.

  • Error while deleting class in the ifs manager

    I'm trying to delete a simple class that was defined using the ifsmgr.bat.
    when I'm deleting the class (with ifsmgr.bat), I get the following error :
    ifs-35204: unable to select cursor using s_libraryPObjectSelector.
    I'd be glad to get any ideas.

    Thanks Boland. That solved the problem. I was using samaccountname from AD, instead of uid from Netscape.
    -Prashant.

  • Where did the iFS Javadoc webpages go?

    The Javadoc webpages of iFS APIs seem to have vaporized early last week. Can someone please point to their new home? they were not easy to find in the first place, but now I am having no luck at all.
    Thanks,
    -Jeff

    I'm trying very hard to just create a new versioned document in IFS 9.0.2 via APIs. Unfortunately, I'm running into problems at many different points:
    If I don't specify a content string, I get:
    oracle.ifs.common.IfsException: IFS-30002: Unable to create new LibraryObject
    oracle.ifs.common.IfsException: IFS-31803: No Content specified in ContentObjectDefinition
    If I leave the file out of the DocDef, I get a different error:
    java.lang.NoSuchMethodError: long oracle.jdbc.dbaccess.DBAccess.lobWrite(oracle.sql.BLOB, long, byte[])
    Even if this were to work, embedded within the code, there is quirky behaviour coming from the order of establishing Documents, VersionsSeries, and Families. I know you guys are trying to maintain flexability, but the structures listed in the book have hidden sequential dependencies (difficult coupling issues). It's not well documented, making these APIs very difficult to use without a lot of insider knowledge. It's great that you all can agree as to where I should go for examples, but you have not clearly communicated to me where I can see these examples. This is the same as when I asked for javadocs. please be kinder to me, I can't read your minds or participate in your internal communication. Don't get me wrong, I appreciate all the help, but I am not making great progress on this side. With all of the quirkiness my company has experienced with iFS's Java APIs, we've decided to isolate and eliminate 80% of the extra methods provided. We are trying to wrap the remaining 20% into a highly reliable Interface & Implementation. The I/F is easy to define, but even just sifting through and using the ifs bean classes for implementation is proving difficult.
    com.rsaiia.common.pdm.Folder aDir = testFileRepository.getRootFolder()
    .getFolder("home")
    .getFolder("jeffr")
    .getFolder("SecondTest");
    com.rsaiia.common.pdm.myDoc = aDir.createDocument("BungBucket.unc",
    "UNCLASSIFIED_DOCUMENT",
    new File("C:\\docs\\VersionTest.txt"));
    public com.lmco.rsaiia.common.pdm.Document
    createDocument(String theDocName, String theContentTypeName, File theFolderPath)
    throws PDMException {
    com.lmco.rsaiia.common.pdm.Document theDoc;
    if (theDocName == null)
    throw new NullPointerException("No Document Name");
    if (theContentTypeName == null)
    throw new NullPointerException("No ContentType Name");
    if (theFolderPath == null)
    throw new NullPointerException("No File Name");
    String description = theDocName + " Description";
    // The content (file to be contained in document) is associated in the
    // createDocumentDefinition call
    try{
    DocumentDefinition def = createDocumentDefinition(theDocName, description,
    theFolderPath, theContentTypeName);
    def.setAddToFolderOption(myFolder);
    // the more general variant of createDocument does the rest
    theDoc = getDocument(createDocument(def));
    theDoc.addAttribute(m_SOURCE_FILE_LOCATION_ATTRIBUTE); // should already be there but just in case
    PublicObject aFileObject = myFolder.findPublicObjectByPath(theDocName);
    Family aFamily = (Family)aFileObject;
    myFileSystem.makeVersioned(aFileObject); // make all created files versioned
    VersionSeries aVSeries = aFileObject.getFamily().getPrimaryVersionSeries();
    VersionDescription aVersDesc = aVSeries.getLastVersionDescription();
    System.out.println("Created Document " + theDocName + " In " + theFolderPath);
    return theDoc;
    catch (Exception e){
    throw new PDMException(e);
         * create a DocumentDefinition.
         * @param docName          the name of the new document
         * @param classname          the name of the classobject for the new document
    * @param filePath          a local file system path to content for
         * this document
    * @param parent          the folder that will become the parent of the
         * new document
         * @return                    the created Document
         * @exception IfsException if operation fails.
    private DocumentDefinition createDocumentDefinition (String name,
              String description, File filePath, String contentType)
              throws IfsException {
    if ( name == null )
    throw new NullPointerException("Next time, offer a document name");
              DocumentDefinition def = new DocumentDefinition(getSession());
              def.setAttribute(oracle.ifs.beans.Document.NAME_ATTRIBUTE,
                   AttributeValue.newAttributeValue(name));
              def.setAttribute(oracle.ifs.beans.Document.DESCRIPTION_ATTRIBUTE,
                   AttributeValue.newAttributeValue(description));
              // Set the class only if it's specified
              ClassObject co = (contentType == null)
                   ? null : lookupClassObject(contentType);
              if (co != null)
                   def.setClassObject(co);
              // Set the content if specified
    if (filePath != null)
    applyContentSettings(def, filePath.toString());
              return def;
    Gets the file extension from the supplied file name and
                   uses this to infer the Format which is written to the supplied
    document definition object
    private void applyContentSettings(DocumentDefinition def, String filePath)
              throws IfsException
              if ((filePath != null) && (def != null))
                   String ext = null;
                   int pos = filePath.lastIndexOf(".");
                   if (pos > 0 && pos < filePath.length())
                        ext = filePath.substring(pos + 1);
                   if (ext == null)
                        // default to "txt"
                        ext = "txt";
                   // set the based on the extension from the filepath
                   Format fmt = lookupFormatByExtension(ext);
                   def.setFormat(fmt);
                   def.setContentPath(filePath);
    * Creates a new folder in the directory specified by the oParentFolder input parameter
    * @param Document a Oracle Document.
    * @return     PDMDocument
    * @throws IfsException if operation fails.
    private com.lmco.rsaiia.common.pdm.Document getDocument (oracle.ifs.beans.Document theDoc)
    throws PDMException {
    try{
    return new PDMDocument(theDoc,getSession(),getFileSystem());
    catch (Exception e){
    throw new PDMException(e);
    private oracle.ifs.beans.Document createDocument(DocumentDefinition def) // was public
    throws IfsException     {
    oracle.ifs.beans.Document theDoc =
    (oracle.ifs.beans.Document) getSession().createPublicObject(def);
              return theDoc;

Maybe you are looking for