Total Pageviews

Wednesday, September 9, 2026

The Fix for the Double Login Prompt when run report 6i from form

 Since you are running in a Desktop (client-server) architecture, the login prompt and buffering are directly tied to how the local Windows environment interacts with your Oracle 11gR2 database.

In a client-server setup, clicking a report launches a completely separate executable (rwrun60.exe or rwcli60.exe) in the background. Because it is a separate program, it does not inherently know who is logged into the Form (ifrun60.exe).
Here is how to resolve the login prompt and the buffering on your desktop clients:
1. The Fix for the Double Login Prompt
You need to explicitly pass the active database connection from the Form to the Report executable using your Form's PL/SQL code.
Update the trigger that fires your report (usually WHEN-BUTTON-PRESSED) to pass the current session's userid:
plsql
DECLARE
   v_connect_str VARCHAR2(100);
BEGIN
   -- Dynamically fetch the current username/password@database
   v_connect_str := Get_Application_Property(CONNECT_STRING);
   
   -- Pass the connection string using the USERID parameter
   -- Replace 'my_report' with your actual report filename
   Run_Product(REPORTS, 'my_report', SYNCHRONOUS, RUNTIME, 
               FILESYSTEM, 'USERID='||v_connect_str, NULL);
END;
Use code with caution.
2. The Fix for the "Buffering" / Hanging Issue
In a desktop environment, intermittent hanging or buffering is almost always caused by one of three local Windows client configurations:
  • The Default Printer Bug (Most Common): Client-server Oracle Reports 6i strictly queries the Windows default printer to calculate page layouts before rendering the report on the screen. If the user's default printer is a network printer that is offline, sleeping, or slow to respond, the report will buffer or hang indefinitely.
    • Fix: Change the user's Windows default printer to a local virtual printer (like "Microsoft Print to PDF" or "Microsoft XPS Document Writer"). If the report opens instantly after doing this, you have found your culprit.
  • SQLNET.AUTHENTICATION_SERVICES Conflict: Oracle 11gR2 utilizes newer security protocols than Reports 6i natively expects.
    • Fix: On the client desktop machine, open the sqlnet.ora file (located in your Oracle Client Home \NETWORK\ADMIN directory). Look for the line SQLNET.AUTHENTICATION_SERVICES = (NTS) and change it to:
      text
      SQLNET.AUTHENTICATION_SERVICES = (NONE)
      
      Use code with caution.
  • TNSNAMES Path Confusion: If the client machine has multiple Oracle Homes (e.g., one for the 11g database client and one for Forms/Reports 6i), the Report engine might be looking at a different tnsnames.ora file than the Form engine. This causes it to hang while trying to resolve the database alias.
    • Fix: Make sure the exact same tnsnames.ora file is copied into the \NET80\ADMIN (or \NETWORK\ADMIN) folder of your Forms/Reports 6i home directory.
Restart the client system.

plsql
-- Change SYNCHRONOUS to ASYNCHRONOUS
Run_Product(REPORTS, 'my_report', ASYNCHRONOUS, RUNTIME, 
            FILESYSTEM, 'USERID='||v_connect_str, NULL);


Since the network and printer defaults are correct but the issue persists,
the problem is a known compatibility conflict between the 32-bit Oracle 6i
networking layer
and the 64-bit Windows OS / 11g Database architecture.

The Fix for the Double Login Prompt when run report 6i from form

  Since you are running in a Desktop (client-server) architecture , the login prompt and buffering are directly tied to how the local Window...