Understanding meaning of ORA-44602: pageout in progress

I have a logical standby database. The v$logstdby_process view has been helpful in troubleshooting different issues from time to time, but I came across a new builder condition today and wanted to see if anyone has some insight on what this status means. It's not listed in the view (v$logstdby_process) documentation. Metalink, this forum and google search do not bring anything up. Looking for an ACE to help out.
The line in question below is:
BUILDER 4,172,548 ORA-44602: pageout in progress (0 out of 1 steps complete)
SELECT TYPE,
high_scn,
status
FROM v$logstdby_process
TYPE HIGH_SCN STATUS
COORDINATOR 4,181,998 ORA-16116: no work available
ANALYZER 4,172,548 ORA-16116: no work available
APPLIER ORA-16116: no work available
APPLIER ORA-16116: no work available
APPLIER ORA-16116: no work available
APPLIER ORA-16116: no work available
APPLIER ORA-16116: no work available
READER 4,172,575 ORA-16127: stalled waiting for additional transactions to be applied
BUILDER 4,172,548 ORA-44602: pageout in progress (0 out of 1 steps complete)
PREPARER 4,172,549 ORA-16127: stalled waiting for additional transactions to be applied
Thanks in advanced

Thanks. I had that assumption. For the benefit of others, here is the main blurb from doc id: 312434.1
In the event that the SQL Apply engine is attempting to build a large transaction the "lcr cache" may fill up. Rather than immediately reporting an error, similar to an ORA-4031, the SQL Apply engine attempts to pageout portions of the "lcr cache" in a way similar to that of the OS paging portions of real memory. To determine if SQL Apply pageouts are occurring, the following SQL statement should be issued.
SQL> select value
from v$logstdby_stats
where name like '%paged%';
VALUE
358706176
In this example, a total of 358706176 bytes have been paged out since the SQL Apply engine was started. If pageouts are occurring on a regular basis during normal operations, then you may want to consider increasing the size of the MAX_SGA logical standby parameter.

Similar Messages

  • I kept getting this upgrade prompt from the App Store to upgrade free to OS10 Yosemite. So I finally did on my 4 year old iMac and now it appears to be stuck just spinning on that stupid ball that means trouble and it is not progressing.  Anybody got

    I kept getting this upgrade prompt from the App Store to upgrade free to OS10 Yosemite. So I finally did on my 4 year old iMac and now it appears to be stuck just spinning on that stupid ball that means trouble and it is not progressing.  Anybody got any idea what I do now?  Thanks.

    I don't think you would get a thing from the App Store running 10.3.x on a PowerBook. It would help if you told us what you really are using and what version of OS X you were running.
    It would also help to tell us what the "stupid ball" is. In fact it would be a big help to give us a thorough and intelligible description of your situation so we don't have to guess.

  • Need help in understanding the error ORA-01843: not a valid month - ECX_ACT

    Hello All,
    We need help in understanding the Transaction Monitor -> Processing Message (error "ORA-01843: not a valid month - ECX_ACTIONS.GET_CONVERTED_DATE").
    And how to enable the log for Transaction Monitor -> Processing Logfile.
    Actually we are trying to import the Purchase Order XML (OAG) into eBusiness Suite via BPEL Process Manager using the Oracle Applications Adapter. The process is working fine with expected payload until it reaches the XML Gateway Transaction Monitor, where we are getting this error.
    thanks
    muthu.

    Hello All,
    We need help in understanding the Transaction Monitor -> Processing Message (error "ORA-01843: not a valid month - ECX_ACTIONS.GET_CONVERTED_DATE").
    And how to enable the log for Transaction Monitor -> Processing Logfile.
    Actually we are trying to import the Purchase Order XML (OAG) into eBusiness Suite via BPEL Process Manager using the Oracle Applications Adapter. The process is working fine with expected payload until it reaches the XML Gateway Transaction Monitor, where we are getting this error.
    thanks
    muthu.

  • Unable to understand meaning of next_time in v$archived_log

    hi all,
    i am working with 10g standby databases. There are column names FIRST_CHANGE#, FIRST_TIME, NEXT_CHANGE#, NEXT_TIME in v$archived_log. I am unable to understand the exact meaning of these columns by reading the oracle document.
    Can somebody explain me the meaning of these columns in v$archived_log.
    Same columns are there in v$log_history also but i think there meanings are different as from columns in v$archived_log.
    thanks in advance.

    Hi,
    See, when you referred to "v$archived_log", by the name it depends on the Online Redo Log. See, the columns
    FIRST_CHANGE#, FIRST_TIME, NEXT_CHANGE#, NEXT_TIME reflects the changes happened with respect to online redolog, Suppose if the online redo log for first time archived then the respect to record will be appeared, in the "v$archived_log" with respect to details like which is first changed started or done in this particular log and time of it, Next change comes to like a link of next log which happened and respective time. By tracking this details itwill help ful for process to apply the necessary logs on data files at the time of recovery.
    Coming to " v$log_history " -> its maintains the history of logs, with respect to SCN numbers, by this we can information which SCN will fall under which log files or existing in which logs. it will have lowest SCN and Highest SCN Numbers with respect to Sequnence number of Log
    - Pavan Kumar N

  • Kindly provide steps for ORA-01033:ORACLE initializationorshutdown progress

    Dear users,
    i am very new to DBA,
    Kindly provide steps to over come the ORA-01033:ORACLE initialization OR shutdown progress.
    Operating system: Windows Server 2003 Enterprise Edition.
    Banner
    Oracle Database 10g Release 10.1.0.2.0 - Production
    PL/SQL Release 10.1.0.2.0 - Production
    CORE     10.1.0.2.0     Production
    TNS for 32-bit Windows: Version 10.1.0.2.0 - Production
    NLSRTL Version 10.1.0.2.0 - Production

    Error: ORA 1033
    Text: ORACLE initialization or shutdown in progress
    Cause: An attempt was made to log on while Oracle is being started up or shutdown.
    Action: Wait a few minutes. Then retry the operation.

  • Understanding meaning of a query's explain plan

    Hi,
    I have a simple query but its query plan is looking difficult for me to understand. Can someone help me explain step by step what happens inthe query. I mean "first step table emp is full scan , than next step is another table's scan..." etc - in that way. I can't make out and need help to understand.
    SQL> explain plan for
      2  SELECT ename,dname ,grade
      3  from n1.salgrade salgrade ,n1.emp emp,n1.dept dept
      4  where emp.deptno=dept.deptno and
      5  emp.sal between salgrade.losal and salgrade.hisal;
    SQL> select plan_table_output from table(dbms_xplan.display());
    Plan hash value: 4131418678
    | Id  | Operation             | Name     | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT      |          |     1 |    36 |    12  (25)| 00:00:01 |
    |*  1 |  HASH JOIN            |          |     1 |    36 |    12  (25)| 00:00:01 |
    |   2 |   MERGE JOIN          |          |     1 |    23 |     8  (25)| 00:00:01 |
    |   3 |    SORT JOIN          |          |     5 |    50 |     4  (25)| 00:00:01 |
    |   4 |     TABLE ACCESS FULL | SALGRADE |     5 |    50 |     3   (0)| 00:00:01 |
    |*  5 |    FILTER             |          |       |       |            |          |
    |*  6 |     SORT JOIN         |          |    14 |   182 |     4  (25)| 00:00:01 |
    |   7 |      TABLE ACCESS FULL| EMP      |    14 |   182 |     3   (0)| 00:00:01 |
    |   8 |   TABLE ACCESS FULL   | DEPT     |     4 |    52 |     3   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       1 - access("EMP"."DEPTNO"="DEPT"."DEPTNO")
       5 - filter("EMP"."SAL"<="SALGRADE"."HISAL")
       6 - access("EMP"."SAL">="SALGRADE"."LOSAL")
           filter("EMP"."SAL">="SALGRADE"."LOSAL")for example my question is why there is SORT JOIN on step no 6? does it mean that rows obtained from step 7 are sorted? than what is done during the step of FILTER?why there are so many joins. Basically I am not good in this area so need help.
    Thanks
    Edited by: orausern on Sep 23, 2010 11:58 AM

    The operations are performed in the following order: 4, 3, 7, 6, 5, 2, 8, 1, 0. The Merge Join operation in Node 2 consumes the SALGRADE and EMP records produced by Node 3 and Node 5 respectively. Node 3 and Node 5 are therefore visited repeatedly during the Merge Join operation. Whenever Node 3 produces a SALGRADE record, Node 5 tries to produce matching EMP records. Node 6 produces EMP records that satisfy the condition EMP.SAL >= SALGRADE.LOSAL. Node 5 then checks if the EMP records produced by Node 6 satisfy the additional condition EMP.SAL <= SALGRADE.HISAL before releasing them. All the results of the Merge Join operation are stored in a hash table in memory. Once the construction of the hash table is fully complete, the DEPT table is scanned and each DEPT record is checked using the hash table.
    Iggy

  • I need help understanding/correcting an ORA-04063 error.

    Hello,
    I am new to Oracle and I have been trying to uderstand/correct this error message for a couple of days now. I would appreciate any help that you can provide. I have included botht he error message and the procedure where the error occurs. Thanks in advance!
    ORA-04063: package body "SAFETYUSER.SEL_INCIDENT_INFO" has errors ORA-06508: PL/SQL: could not find program unit being called ORA-06512: at line 1
    Error(53,3): PL/SQL: Statement ignored
    Error(53,25): PLS-00302: component 'ECUID' must be declared
    CREATE OR REPLACE --44 new
    PACKAGE BODY "SEL_INCIDENT_INFO" as
    procedure sel_0022Info
    in_ID0022 in number,
    out_eName out t_varChar2,
    out_mName out t_varChar2,
    out_Work out t_varChar2,
    out_Loc out t_varChar2,
    out_Sign out t_varChar2,
    out_obsDate out t_varChar2,
    out_veh out t_varChar2,
    out_vehType out t_varChar2,
    out_vehTag out t_varChar2,
    out_secSup out t_varChar2,
    out_dlic out t_varChar2,
    out_dlType out t_varChar2,
    out_rc out t_varChar2,
    out_JTitle out t_varChar2,
    out_actTake out t_varChar2,
    out_jobfunc out t_varchar2,
    out_ecuid out t_varchar2,
    out_mcuid out t_varchar2
    is
    -- cursor to get ecuid ID for entered employee cuid
    CURSOR cur0022 IS
    select o.euid,o.muid,o.workperf,o.loc,o.obsdate,o.sign,o.dlid,o.secid,o.vehid, o.action, o.eID
    from TBL_0022 o
    where o.id0022 = in_ID0022;
    -- variable
    out_eFN varchar2(50);
    out_mFN varchar2(50);
    out_eJF varchar2(4);
    out_DL varchar2(100);
    out_DLT varchar2(100);
    out_Sec varchar2(100);
    out_Vh varchar2(50);
    out_VhT varchar2(50);
    out_VhTg varchar2(50);
    out_eID varchar2(7);
    out_eRC varchar2(10);
    out_signFull varchar2(50);
    out_eJT varchar2(100);
    -- rows for cursors
    row0022 cur0022%rowtype;
    begin
    open cur0022;
    fetch cur0022 into row0022;
    sel_eFullName(row0022.ecuid,out_eFN, out_eJF,out_eID,out_eRC,out_eJT);
    --sel_mFullName(row0022.mcuid,out_mFN);
    sel_DL(row0022.DLID,out_DL,out_DLT);
    sel_Sec(row0022.secid,out_Sec);
    sel_Veh(row0022.vehid,out_Vh,out_VhT,out_VhTg);
    out_veh(1) := out_vh;
    out_vehType(1) := out_vht;
    out_vehTag(1) := out_vhtg;
    out_secSup(1) := out_Sec;
    out_dlic(1) := out_DL;
    out_dlType(1) := out_DLT;
    out_eName(1) := out_eFN;
    out_mName(1) := out_mFN;
    out_Work(1) := row0022.workperf;
    out_Loc(1) := row0022.loc;
    sel_mfullname(row0022.sign,out_signFull);
    out_Sign(1) := row0022.sign;--out_signFull;
    out_obsDate(1) :=row0022.obsdate;
    out_actTake(1) :=row0022.action;
    out_jobFunc(1) := out_eJF;
    out_rc(1) := out_eRC;
    out_ecuid(1) := row0022.ecuid;
    out_mcuid(1) := row0022.mcuid;
    out_JTitle(1) := out_eJT;
    close cur0022;
    end;
    procedure sel_eFullName
    in_0022EcuID in varchar2, --number,
    out_eFN out varChar2,
    out_eJF out varchar2,
    out_eID out varchar2,
    out_eRC out varchar2,
         out_eJT out varchar2
    is
    -- cursor to get ecuid ID for entered employee cuid
    CURSOR curCUID IS
    select e.efn, e.eln,e.jobfunc,ecuid,rc,e.eid, e.jTitle
    from TBL_EINFO e
    where e.ecuid = in_0022ecuid
    order by e.eid desc;--eid = in_0022EID;
    -- rows for cursors
    rowCUID curCUID%rowtype;
    begin
    open curCUID;
    fetch curCUID into rowCUID;
    out_eFN := rowCUID.efn||' '||rowCUID.eln;
    out_eJF := rowCUID.jobfunc;
    out_eID := rowCUID.eid;--ecuid;
    out_eRC := rowCUID.rc;
    out_eJT := rowCUID.jTitle;
    close curCUID;
    end;

    Mistake in the record field name:
    CURSOR cur0022 IS
    select o.euid,o.muid,o.workperf,o.loc,o.obsdate,o.sign,o.dlid,o.secid,o.vehid, o.action, o.eID
    from TBL_0022 o
    where o.id0022 = in_ID0022;
    row0022 cur0022%rowtype;
    begin
    open cur0022;
    fetch cur0022 into row0022;
    sel_eFullName(row0022.ecuid,out_eFN, out_eJF,out_eID,out_eRC,out_eJT);
    Has to be everythere you are using row0022 - row0022.euid
    Rgds.

  • ORA-01090: shutdown in progress - connection is not permitted

    How to stop the shutdown process ?
    I can't make no connections because Oracle is not available.
    Thanks.

    You can solve this as follows:
    svrmgrl
    connect internal
    shutdown abort
    startup pfile=...(your pfile)
    This should do the trick
    null

  • How to populate data for SharePoint Team Foundation Server web part burndown, bug progress chart

    Hi,
    We are configuring the Team Foundation Server web part to show dashboards associated with burndown, user stories, etc. I added some active but when I click on the Bug Progress link, the chart does not display any data. I click on the Burndown link to
    add some issues data. When I click on the Task burndown or the  user story progress, I get the following message
    "The error occured during an attempt to establish a connection to the external data source. The following connections failed to refresh:
    TfsOlaReport"
    I would like the see the data correctly populated in the chart. Any help is greatly appreciated.

    Hi Comicrage86, 
    Thanks for your post.
    What’s the version of your TFS and SharePoint?
    Do you mean the burndown report and bug progress chart in team project site? If yes, your current team project created using which process template?
    As far as I know team project Release Burndown report shows in team project site by default. How did you add the active to show Bug Progress chart and did you custom your Burndown in team project site? Please share the detailed steps here. And you can share
    your screenshots here, it will help us provide the better response.
    If reports cannot show correctly in your team project site, please check the default reports in your team project>>Reports, ensure that default team project reports working fine in your Reporting Service site first. Then follow the
    steps in this
    article to troubleshooting the SharePoint Dashboards data source issue.
    Or refer to the solution in this post:
    https://social.msdn.microsoft.com/Forums/en-US/af054ca3-110b-4414-85d8-f36ea2416b0c/new-sharepoint-portal-excel-refresh-issues?forum=tfssetup.
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • ODBC-datasource generating ORA-12154 (possible listener issue)

    Hi,
    I am trying to configure ao ODBC-datasoure from a client (using instant client 11.2) to a 11.2g Oracle DB server. The database listener is configured to use a non standard port 1700 in this case.
    There is a firewall between the client and the server which is configured to allow connections to the database server on the specified port, when I use telnet from the client to the server, the connection opens on this port, but when I try to test the odbc-datasource I have configured ig et the error ORA-12154.
    The link below outlines the details of the error:
    http://ora-12154.ora-code.com/
    To the context should be added, that there is no problem to use SQL Plus from a computer behind the firewall to connect to the database server using the TNS name that is being used in the ODBC-datasource.
    I have tried to configure the odbc-datasource using both a tns_names.ora file, and also directly in the odbc-datasource using //[ip address] : [port]/TNS_NAME. Both ways of configuring the odbc-datasource generates the same error. I am currently suspecting that the error might be due to some sort of connection redirection on the part of the tns listener on the database server which triggers the firewall to terminate the connection. Could this be the case?
    Does anyone have any suggestions what this error might be caused by. Any suggestions on how to continue my troubleshooting would also be valueble. Further, what kind of configuration would need to be inplace, on the tns-listener / database server side to make this sort of configuration to work.
    Finally, I should also ask that I have tested the same ODBC-datasource configuration in a test system without any firewall inbetween, and that configuration works fine, so there seems to be no problem with the client software configuration per se.
    Any help is apprichated.
    /Eaglecoth

    Cabelcow wrote:
    I managed to solve this issue myself.
    Since there seems to be some problem locating the server I added "HOSTNAME" to the following line in the SQLNET.ORA file on the server:
    names.directory_path = (HOSTNAME,TNSNAMES)
    This solved the issue by using the following syntax in the ODBC Configuration:
    TNS Service Name: [ip-address]:[port]/[TNS NAME]
    Where the TNS_NAME should be that of the TNS_NAME for the database defined in the TNSNAMES_ORA at the server. Note that this value is case sensetivetnsnames.ora is ONLY used by the client side application. It is the tns complement to the local 'hosts' file. It is used by the CLIENT to resolve an alias (tns net service name) to a host (ultimately an ip), port, and service name. Your assertion that the tns_name should be ... hmm, now that I read that again, are you saying that the tnsnames entry on the client should match the one in the tnsnames file on the server? If so, yes and no. There is no technical requirement that they match. It is simply that it is usually assumed that the one on the server is correct and may be used as a model for what to do on the client. The server - acting as a server - doesn't even use the tnsnames.ora file. It exists on the server only to support any client process that may happen to be running on the same box as the db.
    Maybe this will help you understand the connections
    =================================
    ORA-12154: TNS:could not resolve the connect identifier specified
    This error means one thing, and one thing only. The client could not find the specified entry in the tnsnames.ora file being used.
    As a follow-on to that statement, remember that when you use a dblink, the database in which the link is defined is acting as a client to the database that is the target of the link. So in this case, the tnsnames.ora file on the host of your source should have an entry for your target db, as defined in the db_link.
    And for the umpteenth time ... this error has <b><i><u>NOTHING</u></i></b> to do with the status of a listener. The connection request never got far enough to reach a listener. If anyone tells you to check a listener in response to ora-12154, they are not paying attention, or do not understand how TNS works. This error is the equivalent of not being able to place a telephone call because you don't know the number of the party you want to reach. You wouldn't debug that situation by going to the other guy's house and testing his telephone, or by going to the phone company and testing the switchboard. And you don't debug a ORA-12154 by checking the listener. If I had a top ten list of "Incredibly Simple Concepts (tm)" that should be burned into the brain of everyone who claims to be an Oracle DBA, it would include "ORA-12154 Has Nothing To Do With The Listener".
    =================================
    A couple of important points.
    First, the listener is a server side only process. It's entire purpose in life is to receive requests for connections to databases and set up those connections. Once the connection is established, the listener is out of the picture. It creates the connection. It doesn't sustain the connection. One listener, with the default name of LISTENER, running from one oracle home, listening on a single port, will serve multiple database instances of multiple versions running from multiple homes. It is an unnecessary complexity to try to have multiple listeners or to name the listener as if it belongs to a particular database. That would be like the telephone company building a separate switchboard for each customer.
    Additional notes on the listener: One listener is capable of listening on multiple ports. But please notice that it is the listener using these ports, not the database instance. You can't bind a specific listener port to a specific db instance. Similarly, one listener is capable of listnening on multiple IP addresses (in the case of a server with multiple NICs) But just like the port, you can't bind a specific ip address to a specific db instance.
    Second, the tnsnames.ora file is a client side issue. It's purpose is for address resolution - the tns equivalent of the 'hosts' file further down the network stack. The only reason it exists on a host machine is because that machine can also run client processes.
    Assume you have the following in your tnsnames.ora:
    larry =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = myhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVICE_NAME = curley)
      )Now, when you issue a connect, say like this:
    $> sqlplus scott/tiger@larrytns will look in your tnsnames.ora for an entry called 'larry'. Finding it, tns sends a request through the normal network stack to (PORT = 1521) on (HOST = myhost) using (PROTOCOL = TCP), asking for a connection to (SERVICE_NAME = curley).
    Where is (HOST = myhost) on the network? When the request gets passed from tns to the next layer in the network stack, the name 'myhost' will get resolved to an IP address, either via a local 'hosts' file, via DNS, or possibly other less used mechanisms. You can also hard-code the ip address (HOST = 123.456.789.101) in the tnsnames.ora.
    Next, the standard networking process delivers the message to port 1521 on myhost. Hopefully, there is a listener on myhost configured to listen on port 1521, and that listener knows about SERVICE_NAME = curley. If so, the listener will spawn a server process to act as the intermediary between your client and the database instance. Communication to the server process will be on a randomly selected available port. At that point the listener is out of the process and continues to user port 1521 to await other connection requests.
    What can go wrong?
    First, there may not be an entry for 'larry' in your tnsnames. In that case you get "ORA-12154: TNS:could not resolve the connect identifier specified" No need to go looking for a problem on the host, with the listener, etc. If you can't place a telephone call because you don't know the number (can't find your telephone directory (tnsnames.ora) or can't find the party you are looking for listed in it (no entry for larry)) you don't look for problems at the telephone switchboard.
    Maybe the entry for larry was found, but myhost couldn't be resolved to an IP address (say there was no entry for myhost in the local hosts file). This will result in "ORA-12545: Connect failed because target host or object does not exist"
    Maybe there was an entry for myserver in the local hosts file, but it specified a bad IP address. This will result in "ORA-12545: Connect failed because target host or object does not exist"
    Maybe the IP was good, but there is no listener running: "ORA-12541: TNS:no listener"
    Maybe the IP was good, there is a listener at myhost, but it is listening on a different port. "ORA-12560: TNS:protocol adapter error"
    Maybe the IP was good, there is a listener at myhost, it is listening on the specified port, but doesn't know about SERVICE_NAME = curley. "ORA-12514: TNS:listener does not currently know of service requested in connect descriptor"
    Third: If the client is on the same machine as the db instance, it is possible to connect without referencing tnsnames and without going through the listener.
    Now, when you issue a connect, say like this:
    $> sqlplus scott/tigertns will attempt to establish an IPC connection to the db instance. How does it know the name of the instance? It uses the current value of the enviornment variable ORACLE_SID. So...
    $> export ORACLE_SID=fred
    $> sqlplus scott/tigerIt will attempt to connect to the instance known as "fred". If there is no such instance, it will, of course, fail. Also, if there is no value set for ORACLE_SID, the connect will fail.
    check executing instances to get the SID
    [oracle@vmlnx01 ~]$ ps -ef|grep pmon|grep -v grep
    oracle    4236     1  0 10:30 ?        00:00:00 ora_pmon_vlnxora1set ORACLE_SID appropriately, and connect
    [oracle@vmlnx01 ~]$ export ORACLE_SID='vlnxora1
    [oracle@vmlnx01 ~]$ sqlplus scott/tiger
    SQL*Plus: Release 10.2.0.4.0 - Production on Wed Sep 22 10:42:37 2010
    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing optionsNow set ORACLE_SID to a bogus value, and try to connect
    SQL> exit
    [oracle@vmlnx01 ~]$ export ORACLE_SID=FUBAR
    [oracle@vmlnx01 ~]$ sqlplus scott/tiger
    SQL*Plus: Release 10.2.0.4.0 - Production on Wed Sep 22 10:42:57 2010
    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
    ERROR:
    ORA-01034: ORACLE not available
    ORA-27101: shared memory realm does not exist
    Linux Error: 2: No such file or directory
    Enter user-name: Now set ORACLE_SID to null, and try to connect
    [oracle@vmlnx01 ~]$ export ORACLE_SID=
    [oracle@vmlnx01 ~]$ sqlplus /scott/tiger
    SQL*Plus: Release 10.2.0.4.0 - Production on Wed Sep 22 10:43:24 2010
    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
    ERROR:
    ORA-12162: TNS:net service name is incorrectly specifiedOk, that is how we get from the client connection request to the listener. What about the listener's part of all this?
    The listener is very simple. It's job is to listen for connection requests and make the connection (server process) between the client and the database instance. Once that connection is made, the listener is out of the picture. If you were to kill the listener, all existing connections would continue. The listener is configured with the listener.ora file, but if that file doesn't exist, the listener is quite capable of starting up with all default values. One common mistake with the listner configuration is to specify "HOST=localhost" or "HOST=127.0.01". This is a NONROUTABLE ip address. LOCALHOST and ip address 127.0.0.1 always mean "this machine on which I am sitting". So, all computers are known as "localhost" or "127.0.0.1". If you specify this address, the listener will only be capable of receiving requests from the machine on which it is running. If you specified that address in your tnsnames file - on a remote client machine - the request would be routed to the machine on which the requesting client resides. Probably not what you want.
    =====================================

  • EAL extract fails with ORA-03113 end-of-file on communication channel error

    Hi,
    We are trying to run an EAL (v11.1.1.4) extract from an HFM (v9.3.1.4) environment onto Oracle database. We are able to run the extract successfully for few hundred records, but when the records exceeds 10 million we get the error below
    [03 Dec 2011 06:02:41] [dbmgr] ERROR: OCI: HR#13579: Cannot execute statement for insert
    [03 Dec 2011 06:02:41] [dbmgr] ERROR: OCI: HR#01428: OCI_ERROR: (ORA-03113: end-of-file on communication channel;Process ID: 16323;Session ID: 15 Serial number: 8288; (code=3113)) [rec#1]
    [03 Dec 2011 06:02:41] [dbmgr] ERROR: OCI: HR#13580: Cannot rollback
    [03 Dec 2011 06:02:41] [dbmgr] ERROR: OCI: HR#01428: OCI_ERROR: (ORA-03114: not connected to ORACLE; (code=3114)) [rec#1]
    [03 Dec 2011 06:02:41] [dbmgr] WARN : HR#13674: Data move region job failed: HR#00000: some operations failed, see details in the log file; 81877900 cell(s) processed in 70348 second(s)
    We checked on the DB and the Oracle session that was doing the insert was open even after the extract failed with the above error.
    Any idea what could be causing this??
    Thanks
    Ramya Suresh

    Hi,
    I was able to fix this issue.
    From the trace file identified the related objects and validated them.
    More details can be found in below MOS note.
    [ID 421711.1]--Understanding and Diagnosing ORA-00600 [17069] Errors
    Thanks for all the inputs...

  • Saying A means saying B

    SAYING A MEANS SAYING B
    ...sooner or later. No one for quite long time don't even date to propose new language features in Java. I think this happened because authors of Java explained in detail why some features of C++ was absent in the language. One could even suppose there nothing to add to such the perfect language. This irony could be justified now when we know about changes in Java which stalking around since the first alpha version of JDK 1.5. C++ templates arrived, foreach and enums did the same. Wait you can say but Java lacks... Yes, right, yet one feature. I suppose this will be great idea if not only by means of JCP (which by the way could be proposed only by employees of the major players in Java world) but each developer could suggest what missed in the language. Personally I waited for almost five years for such opportunity and here I am.
    A SAID
    Why developers of Java said only A? Is it possible the authority of Bjarne Stroustrup is really great that doesn't allow to note one fact. Templating is not thorough in C++. It would be not entirely covered if will remain the same as introduces in JDK 1.5. Well, the fact is: everything is templating. At least, in human reasoning: we recognize and apply templates each day in our life. Compiler does the same. Let's consider "for".
    template 'for (<init>; <cond>; <cont>) { <code> }' {
         init;
         label: {
              code;
              cont;
              if (cond) continue label;
    }As the opposite to everyday life, templates as they arrived in 1.5 is quite simple (especially who knows them by C++ experience):
    public interface List<E> extends Collection<E> {
         Iterator<E> iterator();
    }But moreover they offer only one part of template handling: applying. That's we take a generic type and apply it to specific class and get list of ints or Strings. This is compliant with contemporary programming languages: they all are basically template applying languages as in the case of "for". This concerns, of course, only developers of Java and not Java developers, you know. Compiler rather recognizes the "for" template and then applies it to the code. But why template recognizing isn't still proposed for Java or C++ developers? Well, basically it could make languages more extensible and this is the major threat (no one wants to get very confusing code). But on the other side we would have got the language with infinite possibilities.
    Let's begin with the least of consequences of more thourough template introduction. This concerns the great and terrible programming style, approach, and pattern called Copy-Paste. Look at the following code:
    JButton button = new JButton();
    button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
              a = 5;
              b = 7;
    });There's a lot of code with similar definitions but what's if we invite new template definition:
    template addActionListener <component, actions> {
         component.addActionListener(new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                   actions
    addActionListener <button> <
         a = 5;
         b = 7;
    >or even
    addActionListener(button) {
         a = 5;
         b = 7;
    }Yes, this could be reduced to just method call but it not always available when, for example, we use third-party library, etc. Or, let's look for Arrays.sort and Collections.sort methods. In current alpha version of JDK 1.5 Collections.sort defined as follows:
    public static <T extends Comparable<? super T>> void sort(List<T> list) {
         Object[] a = list.toArray();
         Arrays.sort(a);
         ListIterator<T> i = list.listIterator();
         for (int j=0; j<a.length; j++) {
              i.next();
              i.set((T)a[j]);
    }It's a little different from STL where sort belongs to algorithms and its parameters are just iterators which could be both array's, list's or whatever else. On the other hand, if we will look in Arrays.sort method we understand that the point of this method as for arrays is just getting nth element. That is we can define own template sort:
    template sort <container, geti(i)> {
         geti(i) = geti(--n);
    }And use it as follows:
    sort <a, a>;
    sort <list, get(i)>;
    Sometimes there is situations in which we couldn't apply no one of some advanced programming technics.
    while (a > 4) {
         ... // piece of code #1
         a = doSomething();
         ... // piece of code #2
    while (a > 5) {
         ... // piece of code #3
         a = doSomething();
         ... // piece of code #2
    }This sample ask itself for some refining but how? To define method with parameters and ifs? But this task couldn't be as simple as appears and would require many parameters. Then we have to define helper class for parameters to have the good programming style looming between lines. A long way to solution, isn't? It seems there is more elegant way.
    template myWhile <value, code1> {
         while (a > value) {
              code1;
              a = doSomething();
              ... // piece of code #2     
    }And using:
    myWhile<4> <
         ... // piece of code #1
    >
    myWhile<5 <
         ... // piece of code #3
    >With thorough templating other programming patterns also has a chance to be implemented (please note createMethods[] - yes templating needs list context - that's my belief).
    tempate AbstractFactory <name, createMethods[]> {
         abstract class <name>AbstractFactory {
              for (createMethod : createMethods) {
                   public void create<createMethod>() {}
    template ConcreteFactory extends AbstractFactory <concreteName, implementations[]> {
         public class <concreteName>Factory {
              for (CreateMethod : CreateMethods, implementation : implementations) {
                   public void create<createMethod>() {
                        implementation
    AbstractFactory <Swing> <Button, CheckBox, RadioButton>;
    abstract class SwingAbstractFactory {
         public void createButton() {}
         public void createCheckBox() {}
         public void createRadioButton() {}
    ConcreteFactory <Window>
    // Button
    <
    >
    // CheckBox
    <
    >If I didn't persuade you we need to help Copy-Paste pattern and extend more templating then let's look at even greater extension which looming near. That's template recognizing (contemporary solutions name it rather "parsing"). What we are doing if a clause "send mail to John Doe" pronounced?
    1. We recognize the natural language template "subject, predicate, object" (it allows to associate words with grammar forms which can be useful in more complex cases).
    2. We recognize template of "send" verb and instantiate grammar parameters like "from", "to", "subject", "body".
    3. And executing "send".
    template clause <subject, predicate, object> {
         subject predicate object;
    template 'send mail <subject>:<body> to <to>' extends clause <from, send, mail> {
         public <address book>;  // to be instantiated
         public <sending engine>;  // to be recognized
         <from> = System.getProperty("user.name"); // we use a form <from> for clarity
         <to> = 'look for <to> in <address book>';
         if (<subject> == null || <body> == null) 'compose mail <subject, body>';
         send <from, to, subject, body> with <sending engine>;
    template 'look for <to> in <address book>' {
    template send mail <from, to, subject, body> {
         <address book> = ...; // initializing address book
         <sending engine> = Transport;
    }In our case if compiler meets construction 'send mail "Hello":"Hello, <to>!" to John Doe' then it tries to compare as many patterns as possible.
    1. Pattern 'clause' satisfies this pattern (assuming that subject is "I"). So predicate is 'send' and object is 'mail "Hello":"Hello, <to>!" to John Doe'.
    2. Then compiler tries to compare it against different versions of template 'send'. Evidently 'send mail' satisfies. Thus subject, body, and to parameters are instantiated.
    3. It remains only to instantiate address book and sending engine for correspondingly to extract address of recipient and to send mail. For this we use other two templates.
    That's all. Small but nevertheless necessary feature would allow to make language extensions for Java. If you afraid it could stain already existing language constructs then I want to reassure you this couldn't happen just because they use ''. For example:
    for (String recipient : recipients) {
         'send mail to <recipient>';
    }And on the contrary such feature will open new wild, wild possibilities not available for any other languages yet.
    MINOR SUGGESTIONS
    It's always cleaner to set and get parameters (fields whatsoever) by name. Right you say, that's why, for example, you could fetch data not only by index but also by name (and the last choice is preferrable). On the other hand, object-oriented programming was conceived with the same goal: to abstract data in classes and set fields, then pass an class instance in method instead of setting procedure parameters. Sorry, joking. Seriously, namely this feature is still not healed by lifestyle of nowadays programming approaches. I mean handling method parameters.
    myInstance.myMethod(4, "Hello World", a, connection);What do you think about this call? As a rule three parameter is enough. Right. Personally I don't understand what each of them means. Ok. That's the point, named parameters was long awaited in C++ but as Bjarne Stroustrup wrote in "The Design and Evolution of C++" this was declined because of such innovation gives nothing new, would lead to incompatibility with old code, and will contribute to the bad style of programming. Personally I consider these a little biased objections as a display of conservatism, fear of changes, and human pride (I hope one day I will be forgiven for this revelation). At the same time I agree with these objections but the whole poing of named paramets is missed. The core of Stroustrup's argumentation is the better programming style is the less parameters in calls occured.
    Ok, but what's about user-friendly applications with tons of settings, some of them could be added or removed? Well, but you can pass to method an array of objects or an istance of class say MySettings.
    myInstance.myMethod(new Object[] {4, "Hello World", a, connection});or
    myInstance.myMethod(new MySettings(4, "Hello World", a, connection));or
    MySettings settings = new MySettings();
    settings.setParameter1(4);
    myInstance.myMethod(settings);That's fine but let's look on the other hand, what's about user-friendiness of the code itself? Let's consider the above mentioned code. If you are not the developer of myMethod or if you wrote this method aeons ago it would be difficult to understand meaning of parameters. And moreover, in the case even slight changing of parameter count you need to recompile the class of settings.
    Let's look on overloading. What's the great sense in writing several methods?
    void myMethod(File file); // fetch settings from file
    void myMethod(String params); // parsing from the String
    void myMethod(int param1, String param2, int param3, Connection conn);
    void myMethod(int param1, String param2); // assuming param3 == -1 and conn == nullOverloading is the plaing substitution of the following code:
    void myMethod(File file, String params, int param1, String param2, int param3, Connection conn) {
         if (file != null) {
         } else if (params != null) {
         } else  {
              if (param3 == -1 && conn == null) {
              } else {
    }Well, overloading delivers slightly more cleaner code. By the way, for the case of the last two methods C++ has the feature of default values of method parameters. This could lessen interfaces of some Java classes by 3-5 redefinition of the same methods. But if we deal with entirely different parameters (like in the case of reading file, parsing or plain passing it in the method) then we have to suggest having introduced named parameters we won't avoid if-elses. This concerns implementation but interface could become more clear. This is one of the points of named parameters: we have possibility do not change interface if some feature will be added or removed.
    myMethod(file = xmlFile);
    myMethod(toBeParsedString = s);
    myMethod(param1 = 4, param2 = "Hello World");In the fact, similar problems can be handled by several solutions:
    1. Named parameters (and default values of method parameters).
    2. Defaults value of method parameters.
    3. Instant initializing of inherent hashmaps like arrays. Something like this:
    map = new Object[String] { parameter1 = 4, parameter2 = "Hello World", parameter3 = a, conn = null };.Basically it would be great even to inroduce only the last two solutions but there a small at this time but biased to expand its influence usage of named parameters. It's again natural language. Parameter names are greatly underestimated as for their names. As I joked object-oriented programming appeared only to pack long list of procedure parameters in class what is partly true. And when the list is very long parameters turned into class fields and are handled as metadata or as part of RTTI information. But what's about other parameters? They have names too and these names no less meaningful than field names. And this is the main reason for named parameters or at least for handling parameter names as information.
    CONCLUSION
    Definitely Java needs list and map contexts. For example, list context already used if you want to pass multiple arguments as one list or get multiple variables from method. The power of Java is array instantiation just in place.
    results = my.myMethod(new Object[] {4, "Hello World"});
    for (Object result : results) {
         ... // takes each parameter
    }I think that would be small add-on if maps have the same traits.
    results = my.myMethods(new Object[String] {param1 = 4, param2 = "Hello World"});
    for (String key : results.keys) {
         Object result = results[key];
    }Or maybe:
    for (String key : Object result : results) { // as specific form for maps
    }We can even to define our template for such maps.
    template '<map> = new <keytype>[<valuetype>] {<<keys = values>[]>}' {
         map = new HashMap(); // we use the simplest form of maps
         for (int i = 0; i < keys.length; i++) {
              if (keys[i] instanceof keytype && values[i] instanceof valuetype)
                   map.put(keys, values[i]);
    Evidently, templating wants to be extended some day. If Java itself wants to remain here in following, say, 50-100 years we have to extend it that way. Here comes the time for programming languages to meet natural languages. And this couldn't happen without introducing template recognizing (or language extensions), isn't?

    I think the 1.5 people would be the first to say 'generics are not templates'.
    Of course, when you look at generics and autoboxing it becomes a little muddier :-)
    The history of Templates is interesting. I used to read old Dr Dobb's Journals and C/C++ user's journals (don't know what if anything those magazines are called now).
    Just about half of every edition was taken up with subtle little issues with Templates. I mean, thats pretty scary, that half of every issue would be devoted to bugs with a particular language feature. Nasty.
    Of course, way back then every compiler did Templates slightly differently, which compounded the problem.
    So I pretty much formed the opinion that Templates were ugly, evil, 'a bad thing(tm)', and not to be trusted. I haven't seen anything in the last ten years or so to disabuse me of that notion. (Of course the absence of proof is not proof of absence, especially if you're not looking!)
    Nowdays there seems to have emerged something quite different. The C++ camp seems to have split into two, those who program in a C with OO style (eg similar to Java), and those who program by manipulating Templates. The latter sounds to me rather like as if the C++ language had somehow been magically transformed into a functional programming language.
    I don't think Java should try to follow in C++'s footsteps in that regard. Java's key competitive advantage is that is is quite expressive (Interfaces beat the carp out of C++'s multiple inheritance for instance), while remaining simple and easy to write readable/writable code.
    WORA (write once run anywhere) is actually a bad marketing term, because that pretty much describes C. A well written C program can be written once, and then compiled (with minimal if any changes) for most platforms (of course if it relies heavily on an external API such as Win32 that massively restricts its portability). Java on the other hand, is CORA, compile once, run anywhere.
    CORA is of course better than WORA, but its not really that big an advantage. Sun really should focus on keeping Java a lean mean fighting machine of a language, with the emphasis on human readability rather than mere terseness.
    Of course Java doesn't really have anything 'new', its more like an aglomeration of all the good things that other languages had in the 80s and 90s. So it would be natural to look around for other 'good ideas' and incorporate them into the language, right? Well, we just have to be really careful that those things are in fact good ideas, and not just fashions.
    The key to what is good and what is fashion, is that fashions tend to save programmers keystrokes.
    Whereas those things which are good are those that help programmers read, maintain and debug the code. I'll happily give up a saving of 10% of my typing, for a 10% time saving on debugging (other people's code, our code works perfectly first time of course ;-) or a 1% saving on maintenance.
    That is what will make Java last 50-100 years.

  • Recovery in progress may need access to files error

    Dear all,
    I was shown the below error when trying to drop a tablespace TBS1.
    DROP TABLESPACE TBS1 INCLUDING CONTENTS;
    DROP TABLESPACE TBS1 INCLUDING CONTENTS
    ERROR at line 1:
    ORA-01156: recovery in progress may need access to files
    i donot have any backups for the database, and the database was running in NOARCHIVELOG mode for the past one year.
    The datafile associated to this tablespace is offline (actually the original datafile which occupied 33GB of space on the machine UNNECESSARILY was dropped, and this datafile /u01/app/oracle/.../datafile/MASTER_TBS1.dbf is created and associated with TBS1).
    When I try to bring it online, the following error message is being shown..
    ALTER TABLESPACE TBS1 ONLINE
    ERROR at line 1:
    ORA-01113: file 8 needs media recovery
    ORA-01110: data file 8:
    '/u01/app/oracle/.../datafile/MASTER_TBS1.dbf'
    Now I need a tablespace with name TBS1 to import objects from some other database. (All those objects were defaulted to tablespace"TBS1" on that database.)
    Please help me find a solution.
    Thanks,
    Aswin.

    You could do an
    ALTER DATABASE DATAFILE <fileid or filename> OFFLINE DROP ;
    for each of the datafiles in that tablespace before you attempt to drop the tablespace.
    Of course, be very careeful with what fileid/filename you specify -- you wouldn't want to drop datafiles of some other tablespace -- you wouldn't be able to recover them or bring them back online !

  • Workflow Shows as 'In Progress' after Workflow has been completed.

    Hello All,
    I have created a custom workflow using SharePoint Designer. Within this workflow I have multiple 'approval process' tasks. In theory this was so that once the first user had approved the item then the next would be prompted to approve the item, and
    so on. The users that the item must be approved by are set when the item is submitted initially.
    Just so anyone reading this knows I have no formal experience/education in SharePoint workflow design, but I would like to think I know my way around SharePoint(in general) at this point.
    My problem is, the company I work for is just starting out using SharePoint workflows, and from what I understand workflows that are 'In Progress' are related to server performance. I noticed today that there are 5 items in the list which
    under the 'workflow status' column display that they are 'In Progress' which is entirely correct. However, when I go to -> 'List Settings' -> 'Workflow Settings' this workflow is showing 8 workflows 'In Progress'.
    Thank you to anyone who is able to help me with this,
    James

    Hi,
    According to your post, my understanding is that workflow shows as 'In Progress' after Workflow has been completed.
    To send the task one by one, you can select one at a time(serial) when you select Task Process Participants.
    Per my knowleadge, when you go to -> 'List Settings' -> 'Workflow Settings', it show all the workflows you associated to the list.
    To see the running workflow, you need to select an item, right click the title, and then select the workflow.
    However, each workflow enstance can only start once on an item.  In other word, you can not start the same workflow again untill the previous one is completed.
    As you said, workflow shows as 'In Progress'.
    Please make sure all the users have approved the tasks.
    Best Regards,
    Linda Li
    Linda Li
    TechNet Community Support

  • ORA-29284: File read error

    Good morning,
    Need to do two flat file on a 2000 lien.
    1 - Read a file. csv
    2 - Keep it plain, unformatted information from a table
    These are the steps I performed to achieve the first goal ...
    1 - READING TEST FILE
    CREATE OR REPLACE DIRECTORY PUBLIC_ACCESS AS 'C:\REPORTES_REY';
    GRANT READ, WRITE ON DIRECTORY PUBLIC_ACCESS TO PUBLIC;
    -- THIS PL / SQL works ok..
    DECLARE
    v1 utl_file.file_type;
    v2 varchar2(600);
    begin
    v1:= utl_file.fopen('PUBLIC_ACCESS','prueba20110218.csv','R'); -- WORKS WELL ...
    --v1:= utl_file.fopen('PUBLIC_ACCESS','sui_facturacion_alcantarillado_15085_2011_01_76845_001.csv','R');
    loop
         begin
              utl_file.get_line(v1,v2);
              dbms_output.put_line('el contenido del archivo es: '||v2);
              exception
              when no_data_found then
              exit;
         end;
              dbms_output.put_line(' - ');  JUMP LINE
    end loop;
         utl_file.fclose(v1);
    exception
         when others then
         dbms_output.put_line(sqlerrm);
    end;
    but when you change the file name by map prueba20110218.csv de-> sui_facturacion_alcantarillado_15085_2011_01_76845_001.csv displays the following error
    ORA-29284: File read error+
    - this error to be?
    I am grateful for the attention and cooperation extended ...
    good day ...
    REYNEL SALAZAR MARTÍNEZ
    Cali-Colombia

    Thank you very much for your cooperation extended
    The file if it exists, the operating system is Windows, I'm running for the line of command and the file is in the same direction as the file prueba20110218.csv
    Segi therefore his advice and remove:
    exception
    when others then
    dbms_output.put_line(sqlerrm);
    then run the following code:
    DECLARE
    v1 utl_file.file_type;
    v2 varchar2(800);
    begin
    v1:= utl_file.fopen('PUBLIC_ACCESS','prueba20110218.csv','R'); FUNCIONA BIEN...+
    v1:= utl_file.fopen('PUBLIC_ACCESS','sui_facturacion_alcantarillado_15085_2011_01_76845_001.csv','R',32767);
    loop
    begin
    utl_file.get_line(v1,v2);
    dbms_output.put_line('el contenido del archivo es: '||v2);
    exception
    when no_data_found then
    exit;
    end;
    dbms_output.put_line(' - ');  SALTO DE LINEA+
    end loop;
    utl_file.fclose(v1);
    exception
    when others then
    dbms_output.put_line(sqlerrm);
    end;
    +/+
    ORA-06502: PL / SQL: error: character string buffer too small numeric or value
    I do not understand the error -> ORA-06502
    thanks...
    good day
    Reynel Salazar Martínez
    Cali-Colombia

Maybe you are looking for