Converting a delete statement using VPD policies and context

Hello,
I'm trying to convert a delete statement in a update statement using VPD policies and context.
+/* Supose the user 'user1' already exists. This is an application user */+
conn user1/pwd
create table user1.test_a (
id                number(4),
description       varchar2(100),
deleted           number(1)
+);+
alter table user1.test_a add constraint test_a_pk primary key (id);
insert into user1.test_a (1, 'abc', 0);
insert into user1.test_a (2, 'def', 0);
commit;
I'd like to convert each physical deletion into a logical deletion: statements like "delete from user1.test_a where id = 1" must be converted into "update user1.test_a set deleted = 1 where id = 1".
I've found the following way: I will create a policy to avoid physical deletion. Additionally, the policy function should update the deletion flag too.
conn user1/pwd
+/* Create context package */+
create or replace package user1.pkg_security_context is
procedure p_set_ctx(
i_test_a_id      in   user1.test_a.id   %type
+);+
end;
+/+
create or replace package body user1.pkg_security_context is
procedure p_set_ctx (
i_test_a_id      in   user1.test_a.id   %type
+) is+
begin
dbms_session.set_context( 'user1_ctx', 'test_a_id', i_test_a_id );
end;
end;
+/+
show errors
+/* Create trigger to set the context before deletion */+
create or replace trigger user1.test_a_bef_trg
before delete on user1.test_a
for each row
declare
pragma autonomous_transaction;
begin
-- only commits the preceding update, not the delete that fired the trigger.
commit;
user1.pkg_security_context.p_set_ctx( :old.id );
end;
+/+
show errors
create context user1_ctx using user1.pkg_security_context;
+/* Policy function */+
create or replace function user1.f_policy_chk_dels (
object_schema in   varchar2,
object_name   in   varchar2
+) return varchar2+
is
out_string                 varchar2(400)   default '1=2 ';
+/*+
* out_string is the return value.
*  - 'WHERE 1=2' means 'nothing to access'
begin
if ( loc_logged_usr_authorized > 0 ) then
+/*+
* Set the flag deleted to 1
update user1.test_a set deleted = 1 where id = sys_context( 'user1_ctx', 'test_a_id' );
out_string := out_string || 'or 1=1 ';
end if;
return out_string;
end;
+/+
show errors
+/*+
* Create policy
begin
dbms_rls.add_policy(
object_schema   => 'user1'                   ,
object_name     => 'test_a'                  ,
policy_name     => 'policy_chk_dels'         ,
function_schema => 'user1'                   , -- function schema
policy_function => 'f_policy_chk_dels'       , -- policy function
statement_types => 'DELETE'
+);+
end;
+/+
When I try to delete a record of the table test_a:
conn user1/pwd
SQL> delete from ilogdia.oplsimulaciones sim       where sim.id = 9999;
+0 rows deleted+
No rows has been deleted, but the update stmt does not work. That means, the "deleted" flag has not been updated.
Any ideas?
Thank you in advance.
Marco A. Serrano
Edited by: albrotar on Oct 15, 2012 8:42 AM
Edited by: albrotar on Oct 15, 2012 8:42 AM
Edited by: albrotar on Oct 15, 2012 8:43 AM

The policy function is applied once per statement execution. The policy function executes first and the UPDATE statement, presumably, updates no rows because the context is not yet populated. The row-level populates the context (I'm assuming that your session can even see context values populated by an autonomous transaction-- I would guess it could but I'd have to test that) after the UPDATE statement is already complete. The COMMIT in the row-level trigger is also pointless-- it only applies to changes made by the current autonomous transaction, of which there are none-- it cannot apply to changes made in other autonomous transactions. Declaring the row-level trigger to use autonomous transactions doesn't seem to accomplish anything other than to open the question of whether the values set in the context by the autonomous transaction are visible in the caller's transaction.
Even if this, somehow, did work, using autonomous transactions would be a very bad idea since Oracle is free to roll-back a partially executed statement (and the work done by its triggers) and re-execute it. Oracle does that with some regularity to maintain write consistency.
Justin

Similar Messages

  • How to convert update,delete statement into select stmt

    Hi all,
         I have a field called dml_stmt, i am getting the dml statement has input from the user.
         My requirement is, if user is giving "update set col_name = 'xyz' from table_name where codition = 'aa'", before updating the table, i need to get old values from the table and put it in the audit table
         For that,i need to convert those update statement into select stmt and need to execute the query to get the data and then i will put it in the audit table..
         can anyone guide how to convert the update or delete stmt into select(need to write in pl/sql)
    Please do needfull things ......
    Regards,
    Jame

    Maybe I'm missing something, but why would auditing help here? It sounds like the user wants to know the prior values of the data, not the SQL UPDATE statement that was issued. Auditing would tell you that a table was updated, fine-grained auditing would tell you what the UPDATE statement was, but you'd need something else to capture the state of the data prior to the update.
    Depending on why putting triggers on every table was discounted, you may also want to take a look at using Workspace Manager or Total Recall (in 11g) to track a history of data changes. But triggers would be the common solution to this sort of problem.
    Justin

  • Face time with wifi only.  I have a 4Gs iPhone traveling to Japan.  Can I use face time with another 4Gs or IMacback in the States using just wifi and with I have my Celluar Data and Data Roaming off?

    Face time with wifi only.  I have a 4Gs iPhone traveling to Japan.  Can I use face time with another 4Gs or IMacback in the States using just wifi and with I have my Celluar Data and Data Roaming off?

    Thanks,  After changing my settings in face time per your suggestion, (it needed to be done),  I turned off cellular data and data roaming and made a call using face time.  It worked!  Great way to stay in touch while overseas without the need for those egregious phone data plans. 

  • Customer Statement using SAP Script and Standard print program RFKORD10

    Using sap script and standard print program RFKORD10 I need to create a customer statement where the main window will be as follows
    Invoice #     InvoiceDate  CustomerPO  Debit Amt  Credit Amt  Total
        6        7           8               9               10               11
        6        7           8               9               10               11
                                     Totals               12             13              14
    Where company code BKORM-KUKRS
                Invoice              BSID-BELNR
                Invoice date      BSID-BLDAT
                Customer PO    VBKD-BSTKD
    For each document number selected there will be one to many records in VBRP.  For each invoice item in VBRP:
    u2022     Select BSTKD from VBKD where
    o     VBELN = VBRP-VGBEL and
    o     POSNR = VBRP-VGPOS
    u2022     If no hits then select BSTKD from VBKD where
    o     VBELN = VBRP-VGBEL
    If there is more than one PO per invoice then list them in the Customer PO field without repeating the other fields.PO shouldnu2019t come more than once per invoice.
                 Debit Amt         if BSEG-SHKZG = S then WRBTR ELSE 0
                 Credit Amt        if BSEG-SHKZG = H then WRBTR ELSE 0
                 Total                  Debit Amt u2013 Credit Amt
                  Totals                Subtotals
    It will be of great help if some one can help me with the script and the alterations required in standard print program RFKORD10
    Points will b rewarded for sure.
    Thanks.

    Hi Suganya,
    The custom form is getting displayed properly. But the requirement is to have it as an editable PDF. So the functional team is working on configuring the settings of PDF forms with customers email address.
    But for right now, i customized the standard form F140_ACC_STAT_01 and standard print program RFKORD10_PDF and did the configuration. It is getting displayed (I tested only with the transaction FBL5N - customer open line items..)
    Please let me know any further details on this.
    Poornima

  • Performance tunning for select statements using likp lips and vbrp

    Dear all,
      I have a report where i am using select statements using first on likp the for all entries of likp  i am taking data from lips and then for all entries in lips i am taking data from vbrp by matching VGBEL and VGPOS. Now the problem is that when it fetches data from vbrp it is taking lot of time around 13mins. to fetch data from vbrp. How can i overcome the problem.
    regards
    Amit

    Hi,
    there is also no secondary index for preceding document in VBFA table.
    You will also have to create it here.
    Regards,
    Przemysław

  • Delegate Right to delete gpos (new created policies and existing policies)

    Hi
    I want to create a delegation for all group policies in the domain for Active Directory Group over GPMC.
    The users in this group should have rights to delete existing group policies .
    I know that I can delegate this per gpo (Select GPO > Delegation Tab > AD Group). But I want to delegate this right on the whole Domain. For existing gpos, I could use a powershell script which adds the delegation group on all existing policies. But
    I can't find a way to delegate this right for new created GPOs.
    Is there a way to this?
    Thanks for your support!
    Miro

    Am 24.10.2014 um 09:24 schrieb m.hegnauer:
    > Now the delegation is set on both (domain level and "Group Policy
    > Objects"), but "Access denied" appears again. On the "Group Policy
    > Objects"  Delegations Tab, I only can Add or Remove a user / group, but
    > I can't adjust the rights.
    I seem to remember that granting through the UI will
    a) not take effect on existing GPOs and
    b) not take effect on GPOs created by others.
    You need to modify the "policies" container ACL and the WMI filters
    container ACL in Active Directory.
    A colleague of mine implemented this some time ago. This is what we set:
         <grant objectdn="CN=SOM,CN=WMIPolicy,CN=System,DC=yourdomain"
    nc="DefaultNC" type="Container" trustee="GPO-Admins"
                        description="Full Control"
    inheritance="ADS_ACEFLAG_INHERIT_ACE" rights="FULL_CONTROL" />
        <grant objectdn="CN=Policies,CN=System,DC=yourdomain"
    nc="DefaultNC" type="Action"    trustee="GPO-Admins"
    objectguid="ATTRIBUTE_GUID_GPOGUID"    description="Create/Delete GPOs"
    inheritance="ADS_ACEFLAG_INHERIT_ACE"
    rights="DS_CREATE_CHILD;DS_DELETE_CHILD"/>
        <grant objectdn="DC=yourdomain"                 nc="DefaultNC"
    type="Action"    trustee="GPO-Admins"
    objectguid="ATTRIBUTE_GUID_GP_LINK"    description="Link GPOs"
    inheritance="ADS_ACEFLAG_INHERIT_ACE" rights="DS_READ_PROP;DS_WRITE_PROP"/>
        <grant objectdn="DC=yourdomain"                 nc="DefaultNC"
    type="Action"    trustee="GPO-Admins"
    objectguid="ATTRIBUTE_GUID_GP_OPTIONS" description="Change GP Options"
    inheritance="ADS_ACEFLAG_INHERIT_ACE" rights="DS_READ_PROP;DS_WRITE_PROP"/>
    I checked his script, but it is way too complicated to post it here or
    anywhere else =:o
    In addition, you have to grant GPO-Admins sufficient access to
    sysvol\policies:
    "icacls.exe" & SysvolRoot & "\Policies /grant
    GPO-Admins:(OI)(CI)(X,RD,RA,REA,WD,AD,WA,WEA,DC,RC)"
    Both is done through VBS, so you need some Constants and GUIDs :)
    'ACL Constants
    Const   ADS_ACETYPE_ACCESS_ALLOWED           = 0
    Const   ADS_ACETYPE_ACCESS_DENIED            = &H1
    Const   ADS_ACETYPE_SYSTEM_AUDIT             = &H2
    Const   ADS_ACETYPE_ACCESS_ALLOWED_OBJECT    = &H5
    Const   ADS_ACETYPE_ACCESS_DENIED_OBJECT     = &H6
    Const   ADS_ACETYPE_SYSTEM_AUDIT_OBJECT      = &H7
    Const   ADS_RIGHT_DELETE                     = &H10000
    Const   ADS_RIGHT_READ_CONTROL               = &H20000
    Const   ADS_RIGHT_WRITE_DAC                  = &H40000
    Const   ADS_RIGHT_WRITE_OWNER                = &H80000
    Const   ADS_RIGHT_SYNCHRONIZE                = &H100000
    Const   ADS_RIGHT_ACCESS_SYSTEM_SECURITY     = &H1000000
    Const   ADS_RIGHT_GENERIC_READ               = &H80000000
    Const   ADS_RIGHT_GENERIC_WRITE              = &H40000000
    Const   ADS_RIGHT_GENERIC_EXECUTE            = &H20000000
    Const   ADS_RIGHT_GENERIC_ALL                = &H10000000
    Const   ADS_RIGHT_DS_CREATE_CHILD            = &H1
    Const   ADS_RIGHT_DS_DELETE_CHILD            = &H2
    Const   ADS_RIGHT_ACTRL_DS_LIST              = &H4
    Const   ADS_RIGHT_DS_SELF                    = &H8
    Const   ADS_RIGHT_DS_READ_PROP               = &H10
    Const   ADS_RIGHT_DS_WRITE_PROP              = &H20
    Const   ADS_RIGHT_DS_DELETE_TREE             = &H40
    Const   ADS_RIGHT_DS_LIST_OBJECT             = &H80
    Const   ADS_RIGHT_DS_CONTROL_ACCESS          = &H100
    Const   ADS_RIGHT_FULL_CONTROL               = 983551
    Const   ADS_ACEFLAG_INHERIT_ACE              = &H2
    Const   ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE = &H4
    Const   ADS_ACEFLAG_INHERIT_ONLY_ACE         = &H8
    Const   ADS_ACEFLAG_INHERITED_ACE            = &H10
    Const   ADS_ACEFLAG_VALID_INHERIT_FLAGS      = &H1f
    Const   ADS_ACEFLAG_SUCCESSFUL_ACCESS        = &H40
    Const   ADS_ACEFLAG_FAILED_ACCESS            = &H80
    'Object GUIDs
    Const OBJECT_GUID_COMPUTERS         =
    "{bf967a86-0de6-11d0-a285-00aa003049e2}"
    Const OBJECT_GUID_USERS             =
    "{bf967aba-0de6-11d0-a285-00aa003049e2}"
    Const OBJECT_GUID_GROUPS            =
    "{bf967a9c-0de6-11d0-a285-00aa003049e2}"
    Const OBJECT_GUID_PRINTERS          =
    "{bf967aa8-0de6-11d0-a285-00aa003049e2}"
    Const Object_GUID_OU                 = "{bf967aa5-0de6-11d0-a285-00aa003049e2}"
    Const Object_GUID_CONTACTS          =
    "{5CB41ED0-0E4C-11D0-A286-00AA003049E2}"
    Const Obejct_GUID_FtDfs                =
    "{8447f9f3-1027-11d0-a05f-00aa006c33ed}"
    Const Object_GUID_NTFRS_Replica_Set =
    "{5245803a-ca6a-11d0-afff-0000f80367c1}"
    Const Object_GUID_NTFRS_settings    =
    "{f780acc2-56f0-11d1-a9c6-0000f80367c1}"
    Const Object_GUID_NTFRS_Member      =
    "{2a132586-9373-11d1-aebc-0000f80367c1}"
    Const Object_GUID_NTDSConnection    =
    "{19195a60-6da0-11d0-afd3-00c04fd930c9}"
    Const Object_GUID_Server            =
    "{bf967a92-0de6-11d0-a285-00aa003049e2}"
    Const Object_GUID_Subnet            =
    "{b7b13124-b82e-11d0-afee-0000f80367c1}"
    Const Object_GUID_Site              =
    "{bf967ab3-0de6-11d0-a285-00aa003049e2}"
    Const Object_GUID_Sitelink          =
    "{d50c2cde-8951-11d1-aebc-0000f80367c1}"
    Const Object_GUID_ServersContainer  =
    "{f780acc0-56f0-11d1-a9c6-0000f80367c1}"
    Const Object_GUID_msWMIRule         =
    "{3c7e6f83-dd0e-481b-a0c2-74cd96ef2a66}"
    Const Object_GUID_msWMISom          =
    "{ab857078-0142-4406-945b-34c9b6b13372}"
    'Attribute GUIDs
    Const ATTRIBUTE_GUID_LOCKOUT_TIME   =
    "{28630EBF-41D5-11D1-A9C1-0000F80367C1}"
    Const ATTRIBUTE_GUID_PWD            =
    "{00299570-246d-11d0-a768-00aa006e0529}"
    Const GPOLinkProp                   =
    "{f30e3bbe-9ff0-11d1-b603-0000f80367c1}"
    Const GPOOptProp                    =
    "{f30e3bbf-9ff0-11d1-b603-0000f80367c1}"
    Const GPOGUID                       =
    "{f30e3bc2-9ff0-11d1-b603-0000f80367c1}"
    Const Generate_RSoP_Planning        =
    "{b7b1b3dd-ab09-4242-9e30-9980e5d322f7}"
    Const Generate_RSoP_Logging         =
    "{b7b1b3de-ab09-4242-9e30-9980e5d322f7}"
    Const USER_ACCOUNT_RESTRICTIONS     =
    "{4C164200-20C0-11D0-A768-00AA006E0529}"
    Const ATTRIBUTE_GUID_MEMBERS        =
    "{bf9679c0-0de6-11d0-a285-00aa003049e2)"
    Const Change_Schema_Master          =
    "{E12B56B6-0A95-11D1-ADBB-00C04FD8D5CD}"
    Const MemberProp                    =
    "{BF9679C0-0DE6-11D0-A285-00AA003049E2}"
    Const Given_Name                    =
    "{F0F8FF8E-1191-11D0-A060-00AA006C33ED}"
    Const Surname                       =
    "{BF967A41-0DE6-11D0-A285-00AA003049E2}"
    Const Telephone_Number              =
    "{BF967A49-0DE6-11D0-A285-00AA003049E2}"
    Const Phone_Mobile_Primary          =
    "{F0F8FFA3-1191-11D0-A060-00AA006C33ED}"
    Const Facsimile_Telephone_Number    =
    "{BF967974-0DE6-11D0-A285-00AA003049E2}"
    Const E_mail_Addresses              =
    "{BF967961-0DE6-11D0-A285-00AA003049E2}"
    Const SAM_Account_Name              =
    "{3E0ABFD0-126A-11D0-A060-00AA006C33ED}"
    Const User_Principal_Name           =
    "{28630EBB-41D5-11D1-A9C1-0000F80367C1}"
    Const Street_Address                =
    "{BF967A3A-0DE6-11D0-A285-00AA003049E2}"
    Const ATTRIBUTE_GroupMember         =
    "{Bf9679C0-0DE6-11D0-A285-00AA003049E2}"
    Const NTFRS_SubscriptionsProp       =
    "{2A132587-9373-11D1-AEBC-0000F80367C1}"
    Const description                   =
    "{bf967950-0de6-11d0-a285-00aa003049e2}"
    Const postalCode                    =
    "{bf9679fd-0de6-11d0-a285-00aa003049e2}"
    Const DS_Replication_Get_Changes    =
    "{1131f6aa-9c07-11d1-f79f-00c04fc2dcd2}"
    Const DS_Replication_Get_Changes_all=
    "{1131f6ad-9c07-11d1-f79f-00c04fc2dcd2}"
    Martin
    Mal ein
    GUTES Buch über GPOs lesen?
    NO THEY ARE NOT EVIL, if you know what you are doing:
    Good or bad GPOs?
    And if IT bothers me - coke bottle design refreshment :))

  • Can error handling framework use fault policies and BPEL catch blocks

    As part of an integrated customer solution that makes substantial use of SOA Suite (including OSB, BPEL, Mediator, etc) we are in the process of designing an “Error Hospital” subsystem to expose a web service API specifically for BPEL services and/or the OSB layer to call whenever they encounter an exception which they cannot handle so that the appropriate user is notified of the error (via email) and the error is recorded (in an appropriate common fault format, with error codes elaborated into more meaningful descriptions, etc) within OEM, immediately prior to returning the exception to the caller.
    The problem we have experienced in our design is as follows:
    •     We have an error handling service to be called, inside the BPEL catch blocks, when an error occurs to notify the appropriate user, via email, that an error has occurred;
    •     We also use the error handling XML fault-policies so that we can recover from an error using OEM (via human intervention);
    •     The error service needs to be called before the process is suspended (waiting for human intervention) so the email notification and error message formatting occurs BEFORE the recovery action. Unfortunately the fault policies trigger BEFORE the error handler is able to transform the error into the appropriate format and notify the user so the error recorded is not the reformatted one and the user is never notified.
    The key question is how can a BPEL, upon catching an exception, invoke the error handling service and AFTER that send the error to OEM (and have the process suspended).
    It seems the two mechanisms "cannot play nicely together"

    As part of an integrated customer solution that makes substantial use of SOA Suite (including OSB, BPEL, Mediator, etc) we are in the process of designing an “Error Hospital” subsystem to expose a web service API specifically for BPEL services and/or the OSB layer to call whenever they encounter an exception which they cannot handle so that the appropriate user is notified of the error (via email) and the error is recorded (in an appropriate common fault format, with error codes elaborated into more meaningful descriptions, etc) within OEM, immediately prior to returning the exception to the caller.
    The problem we have experienced in our design is as follows:
    •     We have an error handling service to be called, inside the BPEL catch blocks, when an error occurs to notify the appropriate user, via email, that an error has occurred;
    •     We also use the error handling XML fault-policies so that we can recover from an error using OEM (via human intervention);
    •     The error service needs to be called before the process is suspended (waiting for human intervention) so the email notification and error message formatting occurs BEFORE the recovery action. Unfortunately the fault policies trigger BEFORE the error handler is able to transform the error into the appropriate format and notify the user so the error recorded is not the reformatted one and the user is never notified.
    The key question is how can a BPEL, upon catching an exception, invoke the error handling service and AFTER that send the error to OEM (and have the process suspended).
    It seems the two mechanisms "cannot play nicely together"

  • I accidently deleted some contacts that I need.  I still have them on my IPAD because I disabled my contacts in icloud. Is there a way to reload these deleted contacts using my IPAD and icloud?

    I accidently deleted some contacts that I still need.  Because of Icloud they are now deleted on all my devices such as my Iphone and PC (outlook).  I still have them on my IPAD because I disabled my contacts on Icloud on my IPAD.  Is there a way to reload these contacts from my IPAD back to my Iphone and PC using Icloud?  Thank you.

    Hi mth3333,
    Thanks for visiting Apple Support Communities.
    You can sync the contacts on your iPad with your computer. See this article for the steps:
    iOS: How to transfer or sync content to your computer
    http://support.apple.com/kb/ht1296
    Contacts
    To sync contacts with your computer, choose "Sync Contacts with" within iTunes for Windows, or "Sync Address Book Contacts" on your Mac.
    You can sync your contacts with:
    Microsoft Outlook 2003, Microsoft Outlook 2007, Microsoft Outlook 2010 (Windows XP, Windows Vista, or Windows 7)
    Windows Address Book (Windows XP)
    Windows Contacts (Windows Vista / Windows 7)
    Address Book (Mac OS X)
    Microsoft Entourage 2004, Microsoft Entourage 2008, or Microsoft Outlook 2011 for Mac
    Note: If using Microsoft Entourage, use Microsoft Entourage 2008 12.1.2 or later if syncing with Mac OS X v10.6 or later. If you would like to sync data on your Mac with Entourage, enable syncing between Entourage and Address Book.
    Notes:
    When syncing contacts, you can choose to sync all of your contacts or only selected groups. The option to sync selected items may not show up until after the first sync.
    You can select a group of contacts to which all new contacts created on your iOS device will be added.
    Regards,
    Jeremy

  • Convert iTunes videos to use in iMovie and iDVD

    Okay, I have downloaded some videos from iTunes Music Store. I do not own an iPod that can support videos. I want to use the videos in iMovie and eventually put them in iDVD to play on my home DVD player. However, I cannot find a converter so that I can place them into iMovie or iDVD. How can I convert them from .m4p to a format that iMovie or iDVD can recognize?
    There must be a shareware, freeware or commercial product that can do this conversion.

    Sorry, but the copy protection on the videos (mandated by the content owners) prevents you from converting the videos to any other format. They can only be played (in iTunes or QuickTime Player or on a video-capable iPod); they cannot be used in any other application.

  • Help. Deleted Quicktime using the Trash and I need to get it back!

    Hi,
    Quicktime was not playing .avi files so I though I'd delete it and reinstall it to clear up the problem. So I dragged Quicktime into the trash and emptied it. When I tried to reinstall it I got a message saying that Quicktime cannot be installed on this disk because Quicktime X is already present. I need to get Quicktime back, can anybody help me please?

    Extract the QuickTime X player from your Mac OS X 10.6 DVD and then run the combo updater for your Mac OS X version.
    If you want QuickTime 7, it's here.
    If you can't play a given AVI, install Perian. If you still can't play it, it probably can't be played in Mac OS X.
    (57456)

  • I cannot download and convert videos from Youtube using Firefox v31 and Downloadhelper v4.9.22

    This has been a problem for at least 18 months. I receive updates to Firefox and Downloadhelper as they become available and am registered so that I can use the conversion process.
    I've looked through the support pages but they don't help me to fix the problem. If a fix exists I would prefer it to be a "Click this button" rather than lines and lines of revised code.
    Please help, soonest would be nice.

    I can confirm that as of this morning I have v4.9.23 of Downloadhelper. I have manually updated SilverLight, to 5.1.30514.0, and the red warning on the Plugins page has now gone away, I now get an Up to Date message.
    I still have the Youtube problem. I have closed and restarted Firefox but have not yet done a cold boot of my computer.
    I do have 5 unknown plugins that Firefox says I need to research, these are for
    Microsoft® DRM
    Windows Presentation Foundation
    NPCIG.dll (this relates to a Canon image gateway)
    Windows Live® Photo Gallery
    Google Update
    The .dll will have come along with software with my camera but I have not idea about the rest.
    Now whether the DRM is causing the problem I don't know but I am running Microsoft .Net Framework 3.5 SP1 and Windows Media Player 11. For info my PC is running a legitimate copy of Windows XP SP3.
    Thanks for the continuing help.
    Nigel

  • How to put a running thread in waiting state using jdk1.5 and above

    Hi,
    i have thread class(MyThread.java) which will run Continuously and i written two methods to stop thread and resume thread. but it is not happening as i expected , even though stop thread method called the thread is running
    how to stop this thread .
    Belwo you can find the code :
    Mythread.java
    package com.appli.test.thread;
    public class MyThread implements Runnable
         public boolean bo = false;
         private Thread thread = null;
         private Object runLock = new Object();
         int count =0;
         public void begin()
              thread = new Thread(this);
              thread.start();
         public void run()
              while(bo == false)
                   System.out.println("while bo ="+bo);
                   try
                        System.out.println(" count = ** "+count);
                        count +=1;
                        Thread.sleep(1000);
                   }catch (Exception e) {
                        // TODO: handle exception
         public void stopThred()
                   synchronized(runLock){
                        try {
                             bo = true;
                             System.out.println("wait called ");
                             runLock.wait();
                        } catch (InterruptedException e) {
                             e.printStackTrace();
                        }catch(IllegalMonitorStateException ie){
                             ie.printStackTrace();
         public void resumeThread()
              synchronized(runLock){
                   try {
                   bo = false;
                        runLock.notify();
                        System.out.println("resume called");
                   }catch(IllegalMonitorStateException ie){
                        ie.printStackTrace();
    from this class i am calling MyThread class
    package com.appli.test.thread;
    public class CallThread {
         * @param args
         public static void main(String[] args) {
              System.out.println("in the call thread class **");
              MyThread thread = new MyThread();
              thread.begin();
    from this class i am calling stop thread method
    package com.appli.test.thread;
    public class CallOne {
         public static void main(String[] args) {
              System.out.println("in the call one class **");
              MyThread thread = new MyThread();
              thread.stopThred();               
    from this class i am calling resume
    package com.appli.test.thread;
    public class CallTwo {
         public static void main(String[] args) {
              System.out.println("in the call Two class **");
              MyThread thread = new MyThread();
              thread.resumeThread();
    what went worng in this code?
    please help me

    @Op. Your classes CallThread, CallOne and CallTwo aren't sharing an instance. CallThread starts a thread. CallOne creates a MyThread instance, and calls stopThread on that one. That is not the same instance as the thread created by CallThread. The same applies to CallTwo.
    Kaj

  • Error executing a query using VPD and BC4J

    Hi all,
    Our team is developing an application using an Oracle DB 9.2.0.4 and BC4J 10g (9.0.5.16.0) as persistence layer.
    We also are using the VPD (virtual private database) to have security in the database at row level.
    The problem we are facing is that every some time (days) we get a jdbc error when a query (see below) that uses VPD policies is executed. Once the error occurs I execute it from sqlplus without getting any error .. it only occurs from our java application.
    To temporary solve this problem, we delete and recreate the VPD policies, then the application continue working fine for some time ...
    I'll appreciate any comment / suggestions
    Thank in advance.
    Eduardo.
    ERROR LOG:
    oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (SELECT CalLocation.ID,
    CalLocation.CODE, eo
    CalLocation.NAME,
    CalLocation.ZIP,
    CalLocation.PHONE,
    CalLocation.FAX,
    CalLocation.ADDRESS1,
    CalLocation.ADDRESS2,
    CalLocation.URL,
    CalLocation.OWNER,
    CalLocation.CTY_ID,
    CalLocation.DESCRIPTION,
    ORefCity.CODE CTY_CODE,
    ORefCountry.ID CTR_ID,
    ORefCountry.CODE CTR_CODE,
    ORefRegion.ID REG_ID,
    ORefRegion.CODE REG_CODE
    FROM CAL_LOCATIONS CalLocation,
    OREF_CITIES ORefCity,
    OREF_COUNTRIES ORefCountry,
    OREF_REGIONS ORefRegion
    WHERE ORefCity.ID = CalLocation.CTY_ID
    and ORefCountry.ID = ORefCity.CTR_ID
    and ORefRegion.ID = ORefCountry.REG_ID) QRSLT WHERE ( ( (CTY_ID = 867) ) )
    ## Detail 0 ##
    java.sql.SQLException: Io exception: Broken pipe
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:231)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:345)
         at oracle.jdbc.driver.OracleStatement.open(OracleStatement.java:717)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2605)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:457)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:387)

    The symptoms we have been getting are quite similar to the bug 3662364 .
    I'm going to implement the patch for that bug and see what happend then.
    Thank you very much for your help.
    Regards,
    Eduardo.

  • PreparedStatement error using VPD

    Hi all,
    Our team is developing an application using an Oracle DB 9.2.0.4 and BC4J 10g (9.0.5.16.0) as persistence layer.
    We also are using the VPD (virtual private database) to have security in the database at row level.
    The problem we are facing is that every some time (days) we get a jdbc error when a query (see below) that uses VPD policies is executed. Once the error occurs I execute it from sqlplus without getting any error .. it only occurs from our java application.
    To temporary solve this problem, we delete and recreate the VPD policies, then the application continue working fine for some time ...
    I'll appreciate any comment / suggestions
    Thank in advance.
    Eduardo.
    ERROR LOG:
    oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (SELECT CalLocation.ID,
    CalLocation.CODE, eo
    CalLocation.NAME,
    CalLocation.ZIP,
    CalLocation.PHONE,
    CalLocation.FAX,
    CalLocation.ADDRESS1,
    CalLocation.ADDRESS2,
    CalLocation.URL,
    CalLocation.OWNER,
    CalLocation.CTY_ID,
    CalLocation.DESCRIPTION,
    ORefCity.CODE CTY_CODE,
    ORefCountry.ID CTR_ID,
    ORefCountry.CODE CTR_CODE,
    ORefRegion.ID REG_ID,
    ORefRegion.CODE REG_CODE
    FROM CAL_LOCATIONS CalLocation,
    OREF_CITIES ORefCity,
    OREF_COUNTRIES ORefCountry,
    OREF_REGIONS ORefRegion
    WHERE ORefCity.ID = CalLocation.CTY_ID
    and ORefCountry.ID = ORefCity.CTR_ID
    and ORefRegion.ID = ORefCountry.REG_ID) QRSLT WHERE ( ( (CTY_ID = 867) ) )
    ## Detail 0 ##
    java.sql.SQLException: Io exception: Broken pipe
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:189)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:231)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:345)
         at oracle.jdbc.driver.OracleStatement.open(OracleStatement.java:717)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2605)
         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:457)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:387)

    It seems to be related to the bug 3662364 .
    Regards,
    Eduardo.

  • Convert manual bank statement to EBS

    Hi,
    one of our customer Indonesia is currently doing outflow bank statement processing manually, and going forward wants to user electronic bank statement processing.
    Now, i have to check what are the config setting done for Manual bank statement and get data and use them for EBS.
    i can see the first 4 config steps, create account symbols, assign accounts to symbols, create keys for posting rules and define posting rules are same in both manual banking and EBS. so i dont need to do these 4 config steps in EBS.
    how to i get the transacton types?
    please share what are the config steps / work i have to carry out in sequence to convert manual bank statement to EBS?
    and test the EBS?
    Thanks,
    Shwetha

    Hi,
    http://srilogix.com/casesWhitepapers/Electronic%20Bank%20Statement.pdf
    To set up Electronic Bank Statements (EBS) 
    Processing in SAP for most customers in North America. 
    1. Create House Bank and Account ID (FI12) 
    2. Setup EDI Partner Profile for FINSTA Message Type (WE20) 
    3. Configure Global Settings for EBS (IMG) 
         - Create Account Symbols 
         - Assign Accounts to Account Symbols 
         - Create Keys for Posting Rules 
         - Define Posting Rules 
         - Create Transaction Types 
         - Assign External Transaction Types to Posting Rules 
         - Assign Bank Accounts to Transaction Types 
    4. Define Search String for EBS(Optional) 
        - Search String Definition 
        - Search String Use 
    5. Define Program and Variant Selection 
    Additional information is also available in the SAP Library under:
    Financial Accounting > Bank Accounting (FI-BL) > Electronic Bank Statement > 
    Electronic Account Statement Customizing.
    regadrs,
    Santosh kumar

Maybe you are looking for

  • HELP: Horizontal menu bar scrolls page horizontally

    Hi experts out there, this is my first attempt in spry menu bars, and all works fine but ... in the following page if you click item 3.1 and move the mouse out to the side all is fine but if you move out down into item 3.2 - then the whole screen is

  • When can I expect to see my bill corrected?

    I called a Verizon agent on Monday night and asked why my bill did not include my employee discount. In December I was asked to verify my employment & I submitted a pay stub. A week later I received a message that I'd continue to receive the discount

  • I want MyMSN as my default; A bing download with for free ebook toolbar has replaced and how do I get it back?

    While on Amazon.com; I downloaded a free ebook toolbar. So now when I log on my home page (MYMSN) is not where I end up . How do I make MY MSN my default page again?

  • Lightroom 4.4 export

    I had selected some photofiles in Lightroom 4.4 for export and after having selected the destination on one of the computers harddrives, I clicked "Export". When I wanted to repeate the process for some other files in the same main folder, a window s

  • Can't fit slides to audio track

    I'm having trouble with manipulating audio in a slideshow.  Specifically, I cannot seem to adjust the slide durations to match the audio track.  In fact, all of the settings choices are grayed out.  Is there a special trick for this?