Writing an error handler package

I want to standardize on an error handling package, with a record type declared that is anchored to a table. Some obvious attributes I can think of for the table are the following:
1. Time stamp
2. The package that threw the error
3. The method that threw the error
4. Any textual content written by the programmer that invoked the package. Perhaps that could be a concatenation of relevant fields with a delimiter for example.
5. The severity of the error. For example, it could be 'fatal' i.e. can't move any more, 'severe' i.e. threw out junk but leaves the result table with too little content to be practical etc.
6. The author who wrote the code.
My questions are:
(i) In the experience of seasoned writers of libraries in this forum, are there other significant fields (and enumerated values of error types) that you capture, independent of the domain that you are writing this for?
(ii) Is there an analog of argv[0] of the C language in PL/SQL that provides the package (and method)? names? this way, I can proof against the careless programmer mis-typing.
(iii) Apart from writing to the db table and perhaps sending e-mail, are there any significant methods to this package that have escaped my admittedly cursory analysis?
(iv) I am thinking of making it refuse to accept null values for the fields which would force the invoker to populate them when he or she throws an exception. Are there any other things I should force?
Thanks,
Srini

Firstly this is not "error handling" it is logging. They are two different things.
Secondly, before you go any further down this road I recommend you check out log4plsql. This does quite a lot of what you want and a whole lot more besides. It is not perfect (I discuss some of its shortcomings here but it is a very good starting point.
Some specifics:
6. The author who wrote the code.If you know the PACKAGE/METHOD names and you know the version of the software deployed in that environment surely your software version control software will tell you this info?
ii) Is there an analog of argv[0] of the C language in PL/SQL that provides the package (and method)? names?No. Unfortunately PL/SQL lacks this sort of refection, it would be very useful. One tactic is to expand the logging to include INFO and DEBUG levels, which can be turned off (log4plsql does this). Then the developer gets some benefit from the logging package and that is an incentive to get the names right. Another approach is to use an IDE (such as TextPad) that supports clip libraries; include your logger registration call in the templates for PACKAGE, PROCEDURE and FUNCTION.
(iii) Apart from writing to the db table and perhaps sending e-mail, are there any significant methods to this package that have escaped my admittedly cursory analysis?Syslog. It is then industry standard. Some people like files.
(iv) I am thinking of making it refuse to accept null values for the fields which would force the invoker to populate themI think it is an important principle that logging should be as robust as possible - we don't want a gnarly exception thrown because the logging package failed to handle a trivial issue.
You will get the maximum uptake of your logging package if its API is easy to use and developers can see ready benefits from making it work. Again, DEBUG is the key here: all you need do is make it easier to use your package than typing (and removing!) DBMS_OUTPUT.PUT_LINE calls.
Cheers, APC

Similar Messages

  • Error Handling in info-package strangely doesn't work

    Dear All,
    I'm trying to load master-data from R3 containing time-dependent attributes which, I know, are sometimes overlapping. As I still want to load the correct part of data, i've set Processing - via PSA and Error Handling - "Updating valid records, reporting possible" with number of errors more than the dataset itself. However, the load still fails and what is more interesting, all records in PSA are marked as "green" whereas the errors are reported in a log.
    And what makes me wonder even more is that the same info-package from the same DS is loaded in a test system OK - with errors handled and "trashed" in PSA and remaining updated in Info-Object MD.
    Does anybody can help to resolve this strange problem as i can't honestly see the difference in global settings of test and productive systems that could allow this...
    Thank you in advance

    Hi,
    Here you are extracting data for master data with one of the attribute as time dependent . So there are two more fileds are neccessary in extraction ,i.e, 'from date' and 'to date'.
    And it seems there is overlapping of this range for two records. Make sure it in PSA with record numbers. And make sure there will be no overlapping.
    With rgds,
    Anil Kumar Sharma .P

  • Error handling in Info Package

    Hi,
    I am flexibly loading master data into an Info Object (0DPM_DCAS) Info Provider.The delta loads occur on a daily basis.It is fed from two data sources serially in a process chain.
    My concerns are regarding load failures.
    What ideally should be the "Error handling" setting in the info package? "No update,no report / Valid update,request red / Valid update,request green"? What might be the implications of each on a long term basis?
    Also, if a delta load fails from one of the data sources do I need to set the QM status manually to green to make the subsequent loads go through?  If so how do I obtain the data for the failed request? 
    How safe is it to manually change the QM status?

    Hi Avishek,
    The Error handling mechanism works whenyou load to PSA and subsequently update the data target (InfoObject in your case). This is provided for in cases where you know that there is some junk data that will be extracted, and this can cause a load to fail in BW. Eg. you are loading around 90,000 material values and even if one has an extra char, the whole load will fail. To prevent this, you can use error handling. In Valid update,request red the correct records are updated and incorrect are left behind, but the data is not released for reporting. Using the  Valid update,request green option, the correct records are updated and are also available for reporting. You can later edit the incorrect records (stored in PSA as a separate request) and update them to the data target.
    If a load fails, never set it to green else you will miss out on the next delta. Always make sure that it is red and then delete it or request the next delta. Changing the QM status is quite commonly done, but it is important to be very careful.
    Hope this helps...

  • DML error table intermittently fails to generate error handling in package

    Hi!
    In OWB 11gR2 (11.2.0.1), we're seeing an issue when setting the DML Error table name on a target table. Sometimes, mostly on older and complex mappings, the error handling logic does not get generated when we deploy the mapping, and nothing is populated in the error tables for error conditions, though the errors display as warnings in the OWB UI.
    When I create a new mapping that is very simple - one table loading another - setting the DML Error table name always results in errors being put in the error table. That's great, but that doesn't help us with our more-complex mappings that aren't logging errors.
    We can't determine the cause of the issue. I can't see a difference in the configuration of the mappings that work and don't work. Generation Mode is All Operating Modes. Default Operating Mode is Set based fail over to row based. We've generated the error table using DBMS_ERRLOG.CREATE_ERROR_LOG. The target tables do not have primary keys.
    I've tried synchronizing the target table operator in the mapping as another forum thread suggested. No change.
    Has anyone else seen this issue or know of a workaround?
    Thanks,
    Jayce

    Which logic did you talk about ?
    For the version 10, you will find the error table more on the insert statement such as:
    INSERT INTO "TSALES"
      ("PROD_ID",
      "SALES"."AMOUNT_SOLD" "AMOUNT_SOLD"
    FROM
      "SALES"  "SALES"
    LOG ERRORS INTO TSALES_ERR (get_audit_detail_id) REJECT LIMIT 50;Come from here:
    http://blogs.oracle.com/warehousebuilder/2007/08/set_based_errors_dml_error_log.html
    Then check the insert SQL generated.
    Cheers
    Nico

  • Additional error handling within a production application using SQLERRM

    I have an application that is already in production. What I would like to do is to add additional error detail currently captured within the SQLERRM. I would like to capture detail such as: where the error occurred ie. what procedure in which package attempting to insert in which table etc. etc. Is this something that I can do easily without writing hundreds of exceptions into the existing code? Please respond if you know of a way to do this.
    Thanks in advance

    Probably not, unfortunately. To get that level of detail, you would need to go in to every procedure and add appropriate exception handlers, state variables (so you know what table you were inserting into). Adding error handling into any application after it is "done" is going to require some heavy lifting.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Windows 7 64bits Installing Internet Explorer 11 ERROR Neutral package installation failed

    Hi,
    The laptop is running Windows 7 64bits with Internet Explorer 10 and the Windows automatic updates is turned on. The problem happens when the Windows keeps installing the Internet Explorer 11 every time between shutdown process. So I decided to download
    IE11 offline installation and try to install from it but the problem doesn't solve, the installation still does not complete. I have tried to delete all files in the Windows temp folder and IE temp folder already but the problem still exist.
    Below is the details from IE11_main.log file
    00:00.000:
    ====================================================================
    00:00.000: Started: 2014/05/26 (Y/M/D) 11:00:44.473 (local)
    00:00.000: Time Format in this log: MM:ss.mmm (minutes:seconds.milliseconds)
    00:00.016: Command line: "C:\Users\TBG\Desktop\IE11-Windows6.1-x64-en-us.exe"
    00:00.016: INFO:    Setup installer for Internet Explorer: 11.0.9600.16428
    00:00.016: INFO:    Previous version of Internet Explorer: 10.0.9200.16866
    00:00.016: INFO:    Checking if iexplore.exe's current version is between 11.0.9600.0...
    00:00.016: INFO:    ...and 11.1.0.0...
    00:00.016: INFO:    Maximum version on which to run IEAK branding is: 11.1.0.0...
    00:00.016: INFO:    iexplore.exe version check success. Install can proceed.
    00:00.016: INFO:    Operating System: Windows Workstation: 6.1.7601 (Service Pack 1)
    00:00.016: INFO:    Trying to extract ID: SetupDownloadList.txt (0) as "SetupDownloadList.txt"
    00:00.016: INFO:    Trying to extract ID: HardwareBlockingList.xml (0) as "HardwareBlockingList.xml"
    00:00.016: INFO:    Trying to extract ID: 7006 (0) as "IE11-neutral.Extracted.cab"
    00:00.702: INFO:    Trying to extract ID: 5501 (1033) as "Spelling_en.msu"
    00:00.702: INFO:    Extracted Spelling dictionary for en to C:\Windows\TEMP\IE18CE4.tmp\Spelling_en.msu.
    00:00.702: INFO:    Trying to extract ID: 5502 (1033) as "Hyphenation_en.msu"
    00:00.702: INFO:    Extracted Hyphenation dictionary for en to
    C:\Windows\TEMP\IE18CE4.tmp\Hyphenation_en.msu.
    00:00.718: INFO:    Trying to extract ID: 7128 (1033) as "IE11-support.cab"
    00:01.607: INFO:    PauseOrResumeAUThread: Successfully paused Automatic Updates.
    00:02.714: INFO:    Updated Download list, Hardware Blocking list, and no reboot policy files successfully downloaded
    and extracted for use.
    00:02.730: INFO:    Launched program to check hardware: "C:\Windows\TEMP\IE18CE4.tmp\IE11-
    SUPPORT\IEXPLORE.EXE" /CheckHardware "C:\Windows\TEMP\IE18CE4.tmp\IE11-support\HardwareBlockingList.xml"
    00:02.870: INFO:    Graphics Device Information: Intel(R) HD Graphics Family
    00:02.870: INFO:    Hardware support check succeeded. Installation will continue.
    00:02.870: INFO:    Windows 7 operating system detected.
    00:02.886: INFO:    Service pack major: 1
    00:02.886: INFO:    Service pack minor: 0
    00:02.886: INFO:    Service pack name:  Service Pack 1
    00:02.886: INFO:    Version Check for (KB2834140) of C:\Windows\System32\d3d11.dll: 6.2.9200.16570 >=
    6.2.9200.16570 (True)
    00:02.886: INFO:    Version Check for (KB2670838) of C:\Windows\System32\api-ms-win-downlevel-user32-l1-1-0.dll:
    6.2.9200.16492 >= 6.2.9200.16426 (True)
    00:02.886: INFO:    Version Check for (KB2639308) of C:\Windows\System32\Ntoskrnl.exe: 6.1.7601.18409 >=
    6.1.7601.17727 (True)
    00:02.902: INFO:    Version Check for (KB2533623) of C:\Windows\System32\api-ms-win-security-base-l1-1-0.dll:
    6.1.7601.18229 >= 6.1.7601.17617 (True)
    00:02.902: INFO:    Version Check for (KB2731771) of C:\Windows\System32\conhost.exe: 6.1.7601.18229 >=
    6.1.7601.17888 (True)
    00:02.902: INFO:    Checking for correct version of C:\Windows\Fonts\segoeui.ttf.
    00:02.902: INFO:    Version Check for (KB2786081) of C:\Windows\System32\taskhost.exe: 6.1.7601.18010 >=
    6.1.7601.18010 (True)
    00:02.902: INFO:    Version Check for (KB2888049) of C:\Windows\System32\drivers\tcpip.sys: 6.1.7601.18254 >=
    6.1.7601.18254 (True)
    00:02.917: INFO:    Version Check for (KB2882822) of C:\Windows\System32\tdh.dll: 6.1.7601.18247 >=
    6.1.7601.18247 (True)
    00:07.597: INFO:    Waiting for 0 prerequisite downloads.
    01:37.423: INFO:    The neutral pack was successfully downloaded from the internet. Installation will continue using
    the downloaded package.
    01:37.423: INFO:    Waiting for 0 language pack downloads.
    01:37.423: INFO:    Language pack downloads completed. (exit code = 0xffffffff (4294967295)).
    01:37.438: INFO:    No reboot logic message NrApiStart(0), lParam=0x03771068 returned 0x00000000.
    01:38.000: INFO:    No reboot logic message NrApiScan(1), lParam=0x00000001 returned 0x00000000.
    01:38.000: INFO:    No reboot logic message NrApiStartInstall(4), lParam=0x00000001 returned 0x00000014.
    01:38.000: INFO:    Installing with the downloaded package. C:\Windows\TEMP\IE18CE4.tmp\IE11-
    neutral.Downloaded.cab
    01:38.000: INFO:    Launched package installation: C:\Windows\SysNative\dism.exe /online /add-package
    /packagepath:C:\Windows\TEMP\IE18CE4.tmp\IE11-neutral.Downloaded.cab /quiet /norestart
    02:20.619: INFO:    Process exit code 0x80004005 (-2147467259) [Unspecified error ]
    02:20.713: ERROR:   Neutral package installation failed (exit code = 0x80004005 (2147500037)).
    02:20.729: INFO:    No reboot logic message NrApiInstallDone(7), lParam=0x00009c59 returned 0x00000000.
    02:20.744: INFO:    No reboot logic message NrApiStartFinish(11), lParam=0x00000000 returned 0x00000000.
    02:20.775: INFO:    No reboot logic message NrApiFinish(12), lParam=0x00000000 returned 0x00000016.
    02:20.869: INFO:    Waiting for Active Setup to complete.
    02:20.963: INFO:    PauseOrResumeAUThread: Successfully resumed Automatic Updates.
    02:32.694: INFO:    Setup exit code: 0x00009C59 (40025) - The neutral cab failed to install.
    02:32.741: INFO:    Scheduling upload to IE SQM server: http://sqm.microsoft.com/sqm/ie/sqmserver.dll
    02:32.756: INFO:    SQM Upload returned 403
    02:36.453: INFO:    Cleaning up temporary files in: C:\Windows\TEMP\IE18CE4.tmp
    02:36.531: INFO:    Unable to remove directory C:\Windows\TEMP\IE18CE4.tmp, marking for deletion on reboot.
    02:36.531: INFO:    Released Internet Explorer Installer Mutex
    Taweesak Archawamaitreekool

    DISM.log would make this clearer.  And using ProcMon I suspect would really make it snap out at you.   <eg>
    C.f. (credit for a recent discovery)
    http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_update/i-get-error-9c59-when-updating-internet-explorer/03d4473a-867b-44a5-9a37-913e9a5879cf?page=8&msgId=afe85da0-36e0-4160-860b-d2973e78c8b9 
    Unfortunately, since then others have quickly stuck a pin in this balloon, finding that it is just one more bump in the road, but at least working around this coding error should change your symptom.
    Good luck
    Robert Aldwinckle
    Thank you very much.
    I have tried to create a symbolic link as suggested on a forum but the problem still cannot be solved. The error message from IE11_main.log file is exactly the same as before.
    For DISM.Log, here are the details from the started time of the installtion process
    2014-05-29 16:53:55, Info                  DISM   DISM.EXE: <----- Starting Dism.exe session ----->
    2014-05-29 16:53:55, Info                  DISM   DISM.EXE:
    2014-05-29 16:53:55, Info                  DISM   DISM.EXE: Host machine information: OS Version=6.1.7601, Running architecture=amd64, Number of processors=4
    2014-05-29 16:53:55, Info                  DISM   DISM.EXE: Executing command line: C:\Windows\SysNative\dism.exe /online /add-package /packagepath:C:\Windows\TEMP\IE1CA88.tmp\IE11-neutral.Downloaded.cab
    /quiet /norestart
    2014-05-29 16:53:55, Info                  DISM   DISM Provider Store: PID=9144 Getting Provider FolderManager - CDISMProviderStore::GetProvider
    2014-05-29 16:53:55, Info                  DISM   DISM Provider Store: PID=9144 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:55, Info                  DISM   DISM Provider Store: PID=9144 Loading Provider from location C:\Windows\System32\Dism\FolderProvider.dll - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:55, Info                  DISM   DISM Provider Store: PID=9144 Connecting to the provider located at C:\Windows\System32\Dism\FolderProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:55, Info                  DISM   DISM Provider Store: PID=9144 Getting Provider FolderManager - CDISMProviderStore::GetProvider
    2014-05-29 16:53:55, Info                  DISM   DISM Provider Store: PID=9144 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Manager: PID=9144 Successfully loaded the ImageSession at "C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583"
    - CDISMManager::LoadImageSession
    2014-05-29 16:53:58, Info                  DISM   DISM Image Session: PID=8324 Instantiating the Provider Store. - CDISMImageSession::get_ProviderStore
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Initializing a provider store for the IMAGE session type. - CDISMProviderStore::Final_OnConnect
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\OSProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Connecting to the provider located at C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\OSProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:58, Info                  DISM   DISM OS Provider: PID=8324 Defaulting SystemPath to C:\ - CDISMOSServiceManager::Final_OnConnect
    2014-05-29 16:53:58, Info                  DISM   DISM OS Provider: PID=8324 Defaulting Windows folder to C:\Windows - CDISMOSServiceManager::Final_OnConnect
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Attempting to initialize the logger from the Image Session. - CDISMProviderStore::Final_OnConnect
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\LogProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Connecting to the provider located at C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\LogProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Getting Provider OSServices - CDISMProviderStore::GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Found and Initialized the DISM Logger. - CDISMProviderStore::Internal_InitializeLogger
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\PEProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Warning               DISM   DISM Provider Store: PID=8324 Failed to Load the provider: C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\PEProvider.dll.
    - CDISMProviderStore::Internal_GetProvider(hr:0x8007007e)
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Failed to get and initialize the PE Provider.  Continuing by assuming that it
    is not a WinPE image. - CDISMProviderStore::Final_OnConnect
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Finished initializing the Provider Map. - CDISMProviderStore::Final_OnConnect
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Getting Provider DISMLogger - CDISMProviderStore::GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Manager: PID=9144 Image session successfully loaded from the temporary location: C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583
    - CDISMManager::CreateImageSession
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Getting Provider OSServices - CDISMProviderStore::GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  CSI    00000001 Shim considered [l:256{128}]"\??\C:\Windows\Servicing\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f\pkgmgr.exe"
    : got STATUS_OBJECT_PATH_NOT_FOUND
    2014-05-29 16:53:58, Info                  CSI    00000002 Shim considered [l:250{125}]"\??\C:\Windows\WinSxS\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f\pkgmgr.exe"
    : got STATUS_SUCCESS
    2014-05-29 16:53:58, Info                  DISM   DISM.EXE: Target image information: OS Version=6.1.7601.17592, Image architecture=amd64
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Getting the collection of providers from an image provider store type. - CDISMProviderStore::GetProviderCollection
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\CbsProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Connecting to the provider located at C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\CbsProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:58, Info                  DISM   DISM Provider Store: PID=8324 Encountered a servicing provider, performing additional servicing initializations.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:58, Info                  CSI    00000001 Shim considered [l:256{128}]"\??\C:\Windows\Servicing\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f\pkgmgr.exe"
    : got STATUS_OBJECT_PATH_NOT_FOUND
    2014-05-29 16:53:58, Info                  CSI    00000002 Shim considered [l:250{125}]"\??\C:\Windows\WinSxS\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f\pkgmgr.exe"
    : got STATUS_SUCCESS
    2014-05-29 16:53:59, Info                  DISM   DISM Package Manager: PID=8324 Finished initializing the CbsConUI Handler. - CCbsConUIHandler::Initialize
    2014-05-29 16:53:59, Info                  CSI    00000001 Shim considered [l:256{128}]"\??\C:\Windows\Servicing\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f\pkgmgr.exe"
    : got STATUS_OBJECT_PATH_NOT_FOUND
    2014-05-29 16:53:59, Info                  CSI    00000002 Shim considered [l:250{125}]"\??\C:\Windows\WinSxS\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f\pkgmgr.exe"
    : got STATUS_SUCCESS
    2014-05-29 16:53:59, Info                  DISM   DISM Package Manager: PID=8324 CBS is being initialized for online use. More information about CBS actions can be
    located at: %windir%\logs\cbs\cbs.log - CDISMPackageManager::Initialize
    2014-05-29 16:53:59, Info                  DISM   DISM Package Manager: PID=8324 Loaded servicing stack for online use only. - CDISMPackageManager::RefreshInstanceAndLock
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\MsiProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Connecting to the provider located at C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\MsiProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Encountered a servicing provider, performing additional servicing initializations.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\IntlProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Connecting to the provider located at C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\IntlProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Encountered a servicing provider, performing additional servicing initializations.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\DmiProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Connecting to the provider located at C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\DmiProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Encountered a servicing provider, performing additional servicing initializations.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  CSI    00000001 Shim considered [l:256{128}]"\??\C:\Windows\Servicing\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f\pkgmgr.exe"
    : got STATUS_OBJECT_PATH_NOT_FOUND
    2014-05-29 16:53:59, Info                  CSI    00000002 Shim considered [l:250{125}]"\??\C:\Windows\WinSxS\amd64_microsoft-windows-servicingstack_31bf3856ad364e35_6.1.7601.17592_none_672ce6c3de2cb17f\pkgmgr.exe"
    : got STATUS_SUCCESS
    2014-05-29 16:53:59, Info                  DISM   DISM OS Provider: PID=8324 Successfully loaded the hive. - CDISMOSServiceManager::DetermineBootDrive
    2014-05-29 16:53:59, Info                  DISM   DISM Driver Manager: PID=8324 Further logs for driver related operations can be found in the target operating system
    at %WINDIR%\inf\setupapi.offline.log - CDriverManager::Initialize
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\UnattendProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Connecting to the provider located at C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\UnattendProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Encountered a servicing provider, performing additional servicing initializations.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\SmiProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Connecting to the provider located at C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\SmiProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Encountered a servicing provider, performing additional servicing initializations.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Loading Provider from location C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\TransmogProvider.dll
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Connecting to the provider located at C:\Users\TBG\AppData\Local\Temp\A444213B-3012-4ACB-9A8C-561F175FD583\TransmogProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Encountered a servicing provider, performing additional servicing initializations.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Getting Provider DISM Package Manager - CDISMProviderStore::GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Getting Provider DISM Unattend Manager - CDISMProviderStore::GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Got the collection of providers. Now enumerating them to build the command table.
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: DISM Package Manager
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Succesfully registered commands for the provider: DISM Package Manager.
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: OSServices
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: MsiManager
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Succesfully registered commands for the provider: MsiManager.
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: IntlManager
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Succesfully registered commands for the provider: IntlManager.
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: DriverManager
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Succesfully registered commands for the provider: DriverManager.
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: DISM Unattend Manager
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Succesfully registered commands for the provider: DISM Unattend Manager.
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: DISM Log Provider
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: SmiManager
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: Edition Manager
    2014-05-29 16:53:59, Info                  DISM   DISM Transmog Provider: PID=8324 Current image session is [ONLINE] - CTransmogManager::GetMode
    2014-05-29 16:53:59, Info                  DISM   DISM.EXE: Succesfully registered commands for the provider: Edition Manager.
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Getting Provider DISM Package Manager - CDISMProviderStore::GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Provider Store: PID=8324 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:53:59, Info                  DISM   DISM Package Manager: PID=8324 Processing the top level command token(add-package). - CPackageManagerCLIHandler::Private_ValidateCmdLine
    2014-05-29 16:53:59, Info                  DISM   DISM Package Manager: PID=8324 Attempting to route to appropriate command handler. - CPackageManagerCLIHandler::ExecuteCmdLine
    2014-05-29 16:53:59, Info                  DISM   DISM Package Manager: PID=8324 Routing the command... - CPackageManagerCLIHandler::ExecuteCmdLine
    2014-05-29 16:53:59, Info                  DISM   DISM Package Manager: PID=8324 Encountered the option "packagepath" with value "C:\Windows\TEMP\IE1CA88.tmp\IE11-neutral.Downloaded.cab"
    - CPackageManagerCLIHandler::Private_GetPackagesFromCommandLine
    2014-05-29 16:53:59, Info                  DISM   DISM Package Manager: PID=8324 Package Microsoft-Windows-InternetExplorer-Package-TopLevel~31bf3856ad364e35~amd64~~11.2.9600.16428
    with CBS state 4(CbsInstallStateStaged) being mapped to dism state 3(DISM_INSTALL_STATE_STAGED) - CDISMPackage::LogInstallStateMapping
    2014-05-29 16:53:59, Info                  DISM   DISM Package Manager: PID=8324 Initiating Changes on Package with values: 4, 7 - CDISMPackage::Internal_ChangePackageState
    2014-05-29 16:54:00, Info                  DISM   PID=4640 Scratch directory set to 'C:\Users\TBG\AppData\Local\Temp\'. - CDISMManager::put_ScratchDir
    2014-05-29 16:54:00, Info                  DISM   PID=4640 Successfully loaded the ImageSession at "C:\Windows\System32\Dism" - CDISMManager::LoadImageSession
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Found and Initialized the DISM Logger. - CDISMProviderStore::Internal_InitializeLogger
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Failed to get and initialize the PE Provider.  Continuing by assuming that it
    is not a WinPE image. - CDISMProviderStore::Final_OnConnect
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Finished initializing the Provider Map. - CDISMProviderStore::Final_OnConnect
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Getting Provider DISMLogger - CDISMProviderStore::GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Getting Provider DISMLogger - CDISMProviderStore::GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Manager: PID=4640 Successfully created the local image session and provider store. - CDISMManager::CreateLocalImageSession
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Getting Provider DISMLogger - CDISMProviderStore::GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Provider has previously been initialized.  Returning the existing instance. -
    CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE:
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: <----- Starting Dism.exe session ----->
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE:
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Host machine information: OS Version=6.1.7601, Running architecture=amd64, Number of processors=4
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Executing command line: c:\windows\sysnative\dism.exe
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Getting the collection of providers from a local provider store type. - CDISMProviderStore::GetProviderCollection
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Loading Provider from location C:\Windows\System32\Dism\WimProvider.dll - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Connecting to the provider located at C:\Windows\System32\Dism\WimProvider.dll. -
    CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Loading Provider from location C:\Windows\System32\Dism\FolderProvider.dll - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Connecting to the provider located at C:\Windows\System32\Dism\FolderProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Provider has not previously been encountered.  Attempting to initialize the provider.
    - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Loading Provider from location C:\Windows\System32\Dism\CompatProvider.dll - CDISMProviderStore::Internal_GetProvider
    2014-05-29 16:54:00, Info                  DISM   DISM Provider Store: PID=4640 Connecting to the provider located at C:\Windows\System32\Dism\CompatProvider.dll.
    - CDISMProviderStore::Internal_LoadProvider
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Got the collection of providers. Now enumerating them to build the command table.
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: WimManager
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Getting the help information collection for the provider: WimManager.
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Registering information from the help collection from provider: WimManager.
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Succesfully registered the Help Item with topic(wimcommands) and category(localtoplevelhelp) for the provider(WimManager).
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Succesfully registered the Help Item with topic(cleanup-wim) and category(wimcommands) for the provider(WimManager).
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Succesfully registered the Help Item with topic(remount-wim) and category(wimcommands) for the provider(WimManager).
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Succesfully registered the Help Item with topic(mount-wim) and category(wimcommands) for the provider(WimManager).
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Succesfully registered the Help Item with topic(unmount-wim) and category(wimcommands) for the provider(WimManager).
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Succesfully registered the Help Item with topic(commit-wim) and category(wimcommands) for the provider(WimManager).
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Succesfully registered the Help Item with topic(get-wiminfo) and category(wimcommands) for the provider(WimManager).
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Succesfully registered the Help Item with topic(get-mountedwiminfo) and category(wimcommands) for the
    provider(WimManager).
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: FolderManager
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: DISM Log Provider
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Attempting to add the commands from provider: Compatibility Manager
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Getting the help information collection for the provider: Compatibility Manager.
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: Image session has been closed. Reboot required=no.
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE:
    2014-05-29 16:54:00, Info                  DISM   DISM.EXE: <----- Ending Dism.exe session ----->
    Taweesak Archawamaitreekool

  • Error handling function: ORA-20001: get_dbms_sql_cursor error:ORA-00942: table or view does not exist  is not trapped. Why?

    Why APEX 4.1 Error handling function does not trap  the error of missing table?
    Say, I create simple application with single IR report page and I also assign standard simple error handling function.
    Function works perfectly, except but this case:
    If I just drop a table used by report page and then refresh the page I am getting usual APEX error message:
    ORA-20001: get_dbms_sql_cursor error ORA-00942: table or view does not exist
    and error handling function is not invoked at all.
    Is this a feature or a bug?

    Hi,
    Check the corrections given in the note 990764:
    Reason and Prerequisites
    Up to now, using a characteristic with its own master data read class as the InfoProvider was not supported. This is now released but it is not available for all modelings. Using the attributes in the query is not supported for characteristics that have their own master data read class. Using the attributes in the query causes a termination. The following errors may occur in this case:
    ORA-00942: table or view does not exist
    Fehler in CL_SQL_RESULT_SET  Include NEXT_PACKAGE
    RAISE_READ_ERROR in CL_RSDRV_VPROV_BASE
    Solution
    SAP NetWeaver 2004s BI
               Import Support Package 11 for SAP NetWeaver 2004s BI (BI Patch 11 or SAPKW70011) into your BI system. The Support Package is available once Note 0914305 "SAPBINews BI 7.0 Support Package 11", which describes this Support Package in more detail, has been released for customers.
    In urgent cases you can implement the correction instructions.
    The correction instructions contain the tightened inspection for characteristics.
    Regards,
    Anil Kumar Sharma .P

  • Error Handling in File Adapter

    I have been working on a requirement where the file adapter picks up the file and gives to the BPEL for processing the data.
    So, in order to do Error Handling for file adapter, i have been reading the Oracle documentation for technology adapters. In that, some of the
    points which i felt valuable for my error handling when using file adapter are the uniqueMessageSeparator property, fault-policies for rejected messages,
    and one of the action for rejected messages could be writing the payload to a file or invoking any other webservice.
    In my composite, i have configured the file adapter as a service for reading files, and i defined the xsd using the native format builder....If i put some data like 'aaaa' in the attribute of type integer , the .csv file is being picked up and its being passed to the BPEL without any error ? I believe there should be a translation error...right...
    But i am not getting the error, please tell me if anything is wrong in my xsd....
    Here is my xsd...
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    xmlns:tns="http://TargetNamespace.com/InboundService"
    targetNamespace="http://TargetNamespace.com/InboundService"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    nxsd:version="NXSD"
    nxsd:stream="chars"
    nxsd:encoding="US-ASCII"
    nxsd:hasHeader="true"
    nxsd:headerLines="1"
    nxsd:headerLinesTerminatedBy="${eol}"
    >
    <xsd:element name="names">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="name" minOccurs="1" maxOccurs="unbounded">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="FirstName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
    <xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," />
    <xsd:element name="Number" type="xsd:integer" nxsd:style="terminated" nxsd:terminatedBy="${eol}" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    And for DB Adapter, there is a property called SchemaValidation, i think that is not there for File adapter, by default it will take care of validation i guess....In another composite, my file adapter is picking up the .xml file and if i put any wrong data over there, that is working fine, i am getting the translation error, but only here in the case of csv file, i am not getting the error. Experts, please help me in this regard...I am using SOA 11G
    Thanks,
    Naresh

    Hi Yatan,
    Thanks for the reply. I did the same way, where my composite is picking up an XML file and translation error is coming. Even the fault policies are working fine, like writing to a file and even invoking other web service. Its really good that you have achieved the same thing in csv files. But the same thing i am unable to achieve when my file adapter is picking up the csv file. I really cant understand where i am doing wrong.
    here is my XSD which i defined through my native builder format...
    <?xml version="1.0" encoding="UTF-8" ?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:nxsd="http://xmlns.oracle.com/pcbpel/nxsd"
    xmlns:tns="http://TargetNamespace.com/FileRecv"
    targetNamespace="http://TargetNamespace.com/FileRecv"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    nxsd:version="NXSD"
    nxsd:stream="chars"
    nxsd:encoding="US-ASCII"
    nxsd:hasHeader="true"
    nxsd:headerLines="1"
    nxsd:headerLinesTerminatedBy="${eol}"
    >
    <xsd:element name="Roots">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="FirstName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;" />
    <xsd:element name="LastName" type="xsd:string" nxsd:style="terminated" nxsd:terminatedBy="," nxsd:quotedBy="&quot;" />
    <xsd:element name="Number" type="xsd:integer" nxsd:style="terminated" nxsd:terminatedBy="${eol}" nxsd:quotedBy="&quot;" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    the jca file ..
    <adapter-config name="FileRecv" adapter="File Adapter" wsdlLocation="FileRecv.wsdl" xmlns="http://platform.integration.oracle/blocks/adapter/fw/metadata">
    <connection-factory location="eis/FileAdapter" UIincludeWildcard="n*.csv"/>
    <endpoint-activation portType="Read_ptt" operation="Read">
    <activation-spec className="oracle.tip.adapter.file.inbound.FileActivationSpec">
    <property name="DeleteFile" value="true"/>
    <property name="MinimumAge" value="0"/>
    <property name="PhysicalDirectory" value="C:\files"/>
    <property name="Recursive" value="false"/>
    <property name="PollingFrequency" value="5"/>
    <property name="IncludeFiles" value="n.*\.csv"/>
    <property name="UseHeaders" value="false"/>
    </activation-spec>
    </endpoint-activation>
    </adapter-config>
    I told that the file will contain only 1 record while defining xsd and i kept a record whose values are John , Peter and akjdkjdskj.
    Now if the data is like above, the file is still getting picked up without any translation error and the BPEL is getting completed successfully...
    Is it possible for you to send your sample project and the csv file from which you have defined the xsd to me if you dont mind ?
    Thanks,
    Naresh

  • JCo Client Programming and Error Handling

    Hi all,
    I was wondering if anybody could help me out with some advice on error handling when writing code to send messages to SAP via a JCo Client, particularly IDocs.
    I understand from my reading that IDocs are always sent asyncronously to the SAP system from JCo, using JCO.Client.send(). So it is possible (and I have some test code working to do this) to force an exception with say a malformed IDoc, and catch the exception in my code.
    But due to the asyncronous nature of the send functionality for IDoc, I cannot see any way of getting back any "business level" exceptions (e.g. Order Number does not exist, Unknown Material, etc.)
    So my question is, is it possible to receive any of these type of error messages when sending IDocs to an SAP system using JCo? Perhaps by setting up a JCo Server with the correct error/exception listeners to receive these messages - but are they even sent out in the way?
    If not what is the process for handling them?
    It is of course possible to look in the SAP system using txn WE02 and see the problem/error but that does not help me to propagate this back to the sending application or to maintain state alignment between the two apps.
    Any advice much appreciated!!
    Chris

    Hi Anil,
    you should check on those trheads:
    <a href="https://www.sdn.sap.com/irj/sdn/thread?messageID=3104772&#3104772">https://www.sdn.sap.com/irj/sdn/thread?messageID=3104772&#3104772</a>
    <a href="https://www.sdn.sap.com/irj/sdn/thread?messageID=579794&#579794">https://www.sdn.sap.com/irj/sdn/thread?messageID=579794&#579794</a>
    Regards,
    Gianluca Barile

  • Transaction and Error handling in Mediator 11g

    Hi Experts/Gurus/All,
    We have following scenario in Mediators :-
    For Inbound Interfaces :-
    M1-->M2-->M3
    M1 calls M2 and M2 calls M3
    There are 3 mediators, Mediator#1(M1),Mediator#2(M2) and Mediator#3(M3)
    M1 performs a FIle Read and do a ABO-->OAGIS conversion
    M2 performs routing
    M3 performs a OAGIS -->ABO(JDE E1) conversion.
    Now,we are in middle to decide the Fault Handling Mechanism for this case.
    M1 is Asynchronous , M2 is Synchronous and M3 is also Synchronous.
    Question is :
    1. M1 will start a new Transaction,Do M1 will propogate the same transaction to M2 which,as being Synch,propogates the same transaction to M3 ?
    2. How will the commit and Roll back will be taken care of?
    3. What if M1 errors out?
    4. Whatif M2 errors out?
    5. What if M3 errors out?
    In question 3,4 and 5:
    What will happen will the Full Transaction ? If M3 erros out,would the Entire Transaction Propogated by M1 will be roll back?
    Also ,How about Error handling in this case:
    Do I need to create seperate fault-policy.xml and fault-binding.xml for M1,M2 and M3 ?
    Another Scenario is of OUTBOUND interfaces :-
    M1-->M2-->M3
    M1 calls M2 and M2 calls M3
    However , M1,M2 and M3 are all Asynchronous.
    In this scenarios how would I handle following :-
    1. If M2 Errors out,I need the entire Interface which comprises of M1-->M2-->M3 to roll back?
    2. If M3 Errors out,I need the entire Interface which comprises of M1-->M2-->M3 to roll back?
    3. Seperate Transactions means I have to create seperate fault-policy.xml and fault-mapping.xml to handle errors?

    Hi,
    You could create a package, and use the OdiSqlUnload to export the data into a flat file (csv) from snp_check_tab, then amend it. Then create an interface to load the data from the flat file to your tables, either via external tables or SQL Loader.
    Question is, why are you amending data going from source to target? there surely has to be something wrong with the Architecture (especially if you are getting errors in production). If you amend data, so that it is different in source as it is in target, then when it comes to regression testing, this will never match.
    The errors should go be fixed at source, and either you, or the business should have access to do so.
    Cheers
    Bos

  • Error-handling in PKGBUILDs is far from perfect

    Hi, PKGBUILDs should die on failure, rather than just continue regardless of errors. Here's a little rant:
    Why is it acceptable for ./configure to fail? Or make install to fail? Or the installation of just about any file? They could fail for lots of reasons, such as expecting a non-existent directory to exist, just being badly-written, or disk corruption, or running out of disk space. I see this lack of error-handling both in official packages and in the AUR.
    Failing on an error is a fundamental part of programming, and BASH makes a mockery of it. And then Linux developers seem to get brainwashed by BASH into believing that mixing important and non-important errors together, then just ignoring all the errors, is an acceptable programming practice. It's not - it's a comedy of errors (excuse the pun).
    SourceMage handles this problem by having one huge command constructed with && at the end of each line, so at least will fail on error.
    Gentoo is using its custom die command more often these days (|| die), but my proposal is in limbo, presumably because "SpanKY" overrules every other dev (little bit of Gentoo politics there ).
    The current practice of make || return 1 is correct, but || return 1 should be used far more often - example  (notice the looped use of install, and the annoyance of having to check $? after the loop). "More often" includes make install even if it's on the final line, both for consistency, and so it is not forgotten to be added when further lines are added to the end (e.g. to install the license/documentation files).
    I'll place this on flyspray after a bit of feedback.
    Edit: I'll distro-hop instead.
    Last edited by brebs (2008-04-21 13:55:33)

    I'm as guilty as anyone in this.  However, I always use it on the initial "configure" and "make install" lines where there is a lot of output.  I tend to miss it when installing individual files at the end (e.g. Licences, icons...) because I can see if they failed from the output.

  • Error handling in overridden methods in AbstractPageBean

    Hi,
    I'm writing a small app in JSF. One of the pages populates a bunch of text fields from an XML file whose name is passed into the app as an initialization parameter. The purpose of the page is to allow editing of the fields.
    It seemed that the prerender() method was the right place to initialize the fields in the form. I have an application-scoped bean trying to open the XML file. I don't want the app to barf on initialization if the file doesn't exist, because the application contains the logic to create the file. So it just sets the appropriate forward target ("file does not exist" page, or maybe XML parse error) and lets the pages that use those bean properties decide when and if they need to display the initialization error page.
    I would like to throw an exception from the prerender() method in my page, and have the error handling specified in web.xml. The problem, of course, is that I can't throw my own exception from prerender().
    So, have I got the wrong place to initialize my form, or do I have to throw a javax.faces.FacesException, or have I got this whole error-handling thing wrong?
    Any advice would be gratefully received.
    Many thanks.
    Regards,
    Mike
    public void prerender(){
            // Get ApplicationBean1 to forward the request if we fail to
            // initialize properly.
            ApplicationBean1 ab1 = getApplicationBean1();
            HttpServletRequest req = (HttpServletRequest) this.getFacesContext().
                    getExternalContext().
                    getRequest();
            HttpServletResponse res = (HttpServletResponse) this.getFacesContext().
                    getExternalContext().
                    getResponse();
            if(!ab1.isInitialized()){
                //The initialization code for ApplicationBean1() sets the
                //target when it detects an error and then forwards the
                //request to that target upon invocation of the forwardRequest
                //method
                ab1.forwardRequest(req,res);
            // These are the input components
            tfClonebase.setValue(ab1.getClonebase());
            tfDhcpdconf.setValue(ab1.getDhcpdconf());
            tfNamedrev.setValue(ab1.getNamedrev());
            tfNamedzone.setValue(ab1.getNamedzone());
            tfPxelinux.setValue(ab1.getPxelinux());
            tfXmldir.setValue(ab1.getXmlDir());
        }

    Well, I'm certainly no expert, but prerender() is called, as you might expect, just before rendering takes place (but only if the page will actually be rendered). This means it won't be called for a page that handled a postback but then navigated to a different page. Good place to handle initializations that happen before rendering.
    So my thinking was that I could initialize stuff before there's anything in the response, making it easier to bail out if something goes bad.
    But I really can't work out the right way to bail out: I can't throw my own exception because the prerender() is overridden from AbstractPageBean. So I suppose I could create a MikesBadInitException e and throw it inside a new javax.faces.FacesException(e). But I'd like to specify an error-page in my web.xml for MikesBadInitException, and don't want to handle all javax.faces.FacesExceptions, if you get my drift.

  • Error Handling in WebUtil CLIENT_OLE2.get_obj_property

    Hello,
    we have a problem with the error handling in WebUtil's CLIENT_OLE2.get_obj_property function. The WebUtil version is 1.0.2 and the problem can be reproduced on the 9iAS, 9iDS and 10gAS as well.
    Problem description:
    The get_obj_property function does not throw a PL/SQL exception when it is given an invalid object as first argument (i.e. an object handle to an application that has intermittently been closed by the user). Instead, the function returns a NULL value and the control flow of our application code continues as if the function had succeeded. So the problem is that the get_obj_property function neither throws an exception nor can the failure be caught by calling WEBUTIL_CORE.IsError as this returns that no error occurred.
    Example:
    PACKAGE BODY word IS
    OBJ_HND CLIENT_OLE2.OBJ_TYPE := NULL;
    mydocs CLIENT_ole2.obj_type;
    -- Start Word97
    PROCEDURE wordopen is                         
    BEGIN
    obj_hnd := null;
    obj_hnd := CLIENT_OLE2.create_obj ('Word.Application');
    CLIENT_OLE2.Set_property(obj_hnd,'Visible',1);
    END;
    PROCEDURE test is
    BEGIN
    IF obj_hnd IS NULL THEN
    wordopen;
    END IF;
    BEGIN
    mydocs := CLIENT_OLE2.get_obj_property(obj_hnd,'Documents');
    EXCEPTION WHEN OTHERS THEN
    -- Word has probably been closed by the user
    -- so just start it again and retry...
    wordopen;
    mydocs := CLIENT_OLE2.get_obj_property(obj_hnd,'Documents');
    END;
    END;
    END;
    If the procedure test is called once then the Word application is started and the procedure performs some work. The procedure could be called several times on the same Word instance but fails in case the user closes the Word application because the procedure does not get an exception or error from WebUtil's get_obj_property function. Only a JACOB Java exception is logged in the Java console of the user's computer - the PL/SQL code has no way of knowing that an error has occurred.
    Possible solution / patch for webutil.pll:
    The webutil.pll can be patched to throw an exception if it is given an invalid object handle. In webutil.pll version 1.0.2 in get_object_property, line 1205, just add the condition "(v_javaHandle IS NULL) or " at the beginning of the if-statement in that line so that an OLE_ERROR will be raised if v_javaHandle is NULL:
    if (v_javaHandle IS NULL) or (v_javaHandle = 0) or (v_javaHandle='') or (v_javaHandle=-1) then     
    raise OLE_ERROR;      
    end if;     
    Can you confirm the error and re-release a patched webutil.pll at a later time?
    Regards,
    Andreas Leidner
    infoteam GmbH Berlin

    Hi
    It is mentioned in webutil doc that, you must regenerate webutil.pll before using it; otherwise you’ll encounter error ORA-06508 when running a form with the attached library.
    Hope this helps...
    Regards,
    Amatu Allah

  • Error Handling in Forms

    Dear all,
    we are using oracle developer suite 10g r2 with oracle database 10g r2 against windows server 2003.
    Error handling is a very big issue.
    i try to do the following, just correct me, or make the trigger more efficient.
    i face unexpected messages, like a message two time displayed, sometime important message never displayed.
    i just set the :system.message_level =20 in the when-new-form-instance trigger.
    and create on-error trigger like below
    declare
    errcode number:=error_code;dbmserrcode number;dbmserrtext varchar2(200);
    formtxt varchar2(200);
    errtype varchar2(3);
    begin
    --------- user defined database exceptions errors raised by --RAISE_APPLICATION_ERROR
    IF DBMS_ERROR_CODE in (-20738,.......) then
    raise form_trigger_failure;
    end if;
    if error_code=50017 then
    message('duration must be between 0 and 23');message(' ',no_acknowledge);
    raise form_trigger_fialure;
    elsif
    error_code=40202 then
    clear_message;
    message('please provide the required fields.');message(' ',no_acknowledge);
    raise form_trigger_fialure;
    elsif error_code=50022 then
    clear_message;
    message('time must be in the correct format.');message(' ',no_acknowledge);
    raise form_trigger_fialure;
    end if;
    if error_code in (40509,40508) then
    dbmserrcode:=dbms_error_code; dbmserrtext:=dbms_error_text;
    if dbmserrcode=-1438 then
    clear_message;
    message('your number is too large.try again.');message(' ',no_acknowledge);
    raise form_trigger_fialure;
    elsif dbmserrcode=-1400 then
    clear_message;
    message('your forgot to provide a value.try again.');message(' ',no_acknowledge);
    raise form_trigger_fialure;
    elsif dbmserrcode=-2291 then
    clear_message;
    message('header is not found for this insertion.');message(' ',no_acknowledge);
    raise form_trigger_fialure;
    elsif dbmserrcode=-1 then
    clear_message;
    message('record already exists');message(' ',no_acknowledge);
    raise form_trigger_fialure;
    else
    clear_message;
    message(error_code||' : '||error_text);message(' ',no_acknowledge);
    raise form_trigger_fialure;
    end if;
    else
    clear_message;
    message(error_code||' : '||error_text);message(' ',no_acknowledge);
    raise form_trigger_fialure;
    end if;
    exception
    when others then
    if dbms_error_code=-20738 then
    clear_message;
    message('Error: absent or later record errror from the database trigger.);
    raise form_trigger_failure;
    elsif .....
    esle
    clear_message;
    message(error_code||' : '||error_text);message(' ',no_acknowledge);
    raise form_trigger_fialure;
    end if;
    end;any suggession?
    Regards

    i must come with a plsql code which handle every error and suppress unnecessary messages.Good luck with that. No matter how well thought out or planned, you're not going to be able to take all scenarios into account. The design of an exception handler takes time to address all possible scenarios you want handled and even then, you're not likely to handle every situation in the beginning.
    could we implement the oracle ebusiness error handling procedures here in our application?if yes, then where could we find that procedure?>
    I've dug through that code and it is not a thorough as you think it is. It handles specific situations and then defaults the rest. It is a good model for your own exception handler, however. That is what I used it for. :) I don't recall which library it is in, but I'll look around and if I find it, I'll post it.
    I agree with Andreas's comment...
    Simply remove your ON-ERROR-trigger, then you have a default. That's nothing better or worse than what apex has.I'm not too familiar with Apex; I've worked with it, but it's been a little while. Even with Apex, you're going to have to develop a customized Exception Handler so more intuitive or application specific messages are displayed in response to an exception.
    As to Andreas's comment...
    For your own error-handling... The "simplest" way in my eyes is create your own error-table where you have appropiate columns for the error-code and the error-type (FRM,ORA,Whatever), then in your ON-ERROR-trigger read the appropiate record from that table and show the error. You could also have a flag in your table which decides what to do with a specific error (Show as Message, Show as Alert, Don't show at all) and react accordingly.This is exactly what we implemented in our application. We created a set of tables that contain all of the Oracle Runtime errors and their attributes (Error Type, Severity Level, etc). Then we wrote a standard On-Error trigger that is subclassed to all of our forms that calls a Library "On_Error" package. This package evaluates the exception raised, compares it to the database entry for the error and then displays an appropriate message depending on the Severity Level, Error Type (ORA or FRM) and Message Type (Informational, Error, Caution) and we display the message in either the Status Bar, Note Alert, Caution Alert or Stop Alert or it is supressed. If an error is not found in the table, then it is displayed in a Stop Alert as an "Unhandled Exception." The second table I mentioned contains all of the messages used by our application and is cross referenced with the table that contains the Oracle messages. By simply assigned one of our messages to an Oracle message - our package will display our message instead of the default Oracle Message. Yes, this took sometime to build and test and once implemented, we spent another couple of months perfecting it, but now it is pretty solid and we haven't had to modify it in over a year.
    While this level of complexity may be overkill for your application, it does offer the greatest flexibility in the long-run. Also, if your application must support multiple languages, having all of your messages in a table make internationalization extremely easy. :)
    The point of all this, is that no matter which system you use (Forms, Apex, or Java) you will still need to invest some time into designing an Excpeiton Handling method for your application and then implement it accross the application. This is not something you can develop in a short period of time and it will not be perfect in the beginning. However, in the long-run, you will be happy you spent the time up-front to build a flexible and robust Exception Handling system.
    Craig...

  • Option for error handling for DTP, ' no updata, no reporting" and "deactiva

    Hello Gurus,
         option for error handling for DTP, ' no updata, no reporting" and "deactivated" , please give some explanation and instance for them?
    Many Thanks,

    On the Update tab page, specify how you want the system to respond to data records with errors:
                                a.      No update, no reporting (default)
    If errors occur, the system terminates the update of the entire data package. The request is not released for reporting. However, the system continues to check the records.
                                b.      Update valid records, no reporting (request red)
    This option allows you to update valid data. This data is only released for reporting after the administrator checks the incorrect records that have not been updated and manually releases the request by setting the overall status on the Status tab page in the monitor (QM action).
                                c.      Update valid records, reporting possible
    Valid records can be reported immediately. Automatic follow-up actions, such as adjusting the aggregates, are also carried out.
    http://help.sap.com/saphelp_smehp1/helpdata/en/42/fbd598481e1a61e10000000a422035/content.htm
    Hope it helps.
    rgds, Ghuru

Maybe you are looking for

  • Download error in CC. Cannot download LR & PS!

    Help! I purchased the $9.99 special for Lightroom & Photoshop. After downloading creative cloud, I tried to download the apps & I keep getting an error message! UGH! HELP HELP HELP, please!

  • ERS posting reversal, but not payment

    Hello I am having an issue with ERS PO's in our system. Scenario is as follows - ERS flag isn't initially set on the PO. Then, a GR posted is from SES release, however because ERS flag isn't turned on EKRS table wasn't populated. Thus ERS would not c

  • Mapping Issue ( ABAP Mapping ).... Help me out..

    hi masters. i want some help from ur side. i just jumped to XI domain.. and got object of abap mapping.. can u hep me.. out.. the steps.. required for mapping.. i went through some materials.. still do u hv any idea.. to clear my doubts.. as suppose

  • Quicktime won't play live webcast....error msg about plug in

    Movie trlrs, advertisements, even archived webcasts can be viewed, but when I try to view a live webcast all I rcvd is the QT player loading the broadcast then stops. Clicking on the Q an error msg says plugin was found but an error has in the plugin

  • Recommendations for Comcast-approved modem to be used with AirPort Extreme?

    Any recommendations for modems that work well with Comcast and AirPort Extreme? If there are ones that work well or ones to avoid, I'd like to know. Here's Comcast's list of approved modems: http://mydeviceinfo.comcast.net/