EssRemoveLocks

Description

EssRemoveLocks() removes all data block locks on a database which are currently held by a user.

Syntax

ESS_FUNC_M EssRemoveLocks (hCtx, AppName, DbName, LoginId);
ESS_HCTX_ThCtx
ESS_STR_TAppName
ESS_STR_TDbName
ESS_LOGINID_TLoginId

Parameters

hCtxEssbase API context handle.
AppNameApplication name.
DbNameDatabase name.
LoginIdId of user login whose locks are to be removed.

Return Value

None.

Notes

Access

This function requires the caller to have database Design privilege (ESS_PRIV_DBDESIGN) for the specified database.

Example

ESS_FUNC_M
ESS_RemoveLocks (ESS_HCTX_T       hCtx,
                 ESS_HINST_T      hInst
                )
{
   ESS_FUNC_M        sts = ESS_STS_NOERR;
   
   ESS_USHORT_T     Count;
   ESS_PLOCKINFO_T  plockinfo = NULL;
   ESS_PLOCKINFO_T  plinfo;
   ESS_USHORT_T     ind;
   ESS_SHORT_T      Item;
   ESS_STR_T        AppName;
   ESS_STR_T        DbName;
   AppName = "Sample";
   DbName  = "Basic";
for (ind = 0; ind < Count; ind++)
      {
         plinfo = plockinfo + ind;
printf ("%-2d  %-15s  %-12ld  %-5d        %ld\r\n",
        ind, plinfo->UserName, plinfo->LoginId,
        plinfo->nLocks, plinfo->Time);
      }
      printf ("\r\n");
      /***********************************
      * Chooser Lock List Item to Remove *
      ************************************/
      Item = 1;      
   }
   else
   {
printf ("\r\nExclusive Lock List on %s:%s is empty\r\n\r\n",
AppName, DbName);
      goto exit;
   }
   if (!sts)
   {
      if ((Item >= 0) && (Item < Count))
      {
         plinfo = plockinfo + Item;
         sts = EssRemoveLocks (hCtx, AppName,
               DbName, plinfo->LoginId);
      }
   }
exit:
   if (plockinfo)
      EssFree (hInst, plockinfo);
return (sts);
}

See Also

EssListLocks()