Which objects are recorded in a TBOM?
Hello all,
In a dynamic recording of the TBOM for the BPCA, what level of objects is recorded? For example, does it capture every field on the screen? Does it capture a field even if the user recording it does not click onto that field? Does it record fields in tabs that the user did not view?
We are trying to figure out how detailed we have to be in recording these TBOMs to catch the information we want.
Thanks,
Michele
Hi Michele,
Please have in mind that during the dynamic TBOM creation all objects
that are executed/touched during the execution of the transaction are
recorded. You can look at which objects are in the TBOM by cklicking on
the 'Display TBOM content' icon on the TBOM screen in the project.
You can also check whether TBOMS for your project have
been recorded.
You can do this in transaction SOLAR_EVAL by executing the report
'Test -> Business Process Change Analyzer - TBOM Analyzer' for
your project.
The following document explains all necessary steps for BPCA in detail:
https://websmp107.sap-ag.de/~sapidb/011000358700000932192009E
Kind regards,
Fabricius
Similar Messages
-
How to find out which objects are at the end of the datafiles
My Scenario is having a tablespace of 65G but the data is 5G and that is at the end of datafile for that we are not able to resize the datafile our though is to find out what are the objects at that end of datafiles and will either alter move <owner.tablename> move or alter index <owner.index> rebuld online.
For that how to find out which objects are at the end of the datafiles.>
My Scenario is having a tablespace of 65G but the data is 5G and that is at the end of datafile for that we are not able to resize the datafile our though is to find out what are the objects at that end of datafiles and will either alter move <owner.tablename> move or alter index <owner.index> rebuld online.
For that how to find out which objects are at the end of the datafiles.
>
You may want to copy this and add it to your toolkit
See 'What's at the End of the File?' in this Tom Kyte article from the Sept 2004 Oracle Magazine
http://www.oracle.com/technetwork/issue-archive/o54asktom-086284.html
And this AskTom blog shows you how to generate a script containing ALTER statements toresize your datafiles to the smallest possible. You can 'pick and choose' from the ALTER statements to do what you want.
Then of course, you can use techniques from this article by Oracle ACE, and noted author, Jonathan Lewis
http://jonathanlewis.wordpress.com/2010/02/06/shrink-tablespace/ -
Which objects are in buffer cache? How much space is each taking up?
Hi All,
I am on Oracle v 11.2.0.2 (64 bit) RedHat.
I want to find out which objects have presence in buffer cache? and how much space each object is taking up in buffer cache?
I googled around and found few queries based on view x$bh. But when tried to run those on my database, I cannot find x$bh (the user has SELECT_CATALOG_ROLE privilege). Is there any other view holding same information as x$bh?
Thanks in advance.Be careful, there is quite a bit of misinformation floating about the net about querying v$bh. What exactly do you want to know, that is, what do you want a user to do with the information?
Edit: Oh, you said x... Why the x$bh view does not exist?
Edited by: jgarry on May 16, 2012 2:58 PM -
Analysis authorization - which objects are relevant
Hi
We use Analysis Authorization.
Multicube XXX contains authorization relevant objects A B C.
Is it possible that some of these objects arent used for analysis authorization. Where can I check it?
ThanksHi there,
I don't quite get your question...
If you go to transaction RSECADMIN and create a new authorization object give it a name and a description, if you click on the Infocube button and select the MultiProvider XXX, the system will open a window with all the InfoObjects that exist on that MultiProvider XXX and are marked as authorizationRelevant on the transaction RSD1, tab Business Explorer.
If you don't want some of those objects to be checked with the authorizations, you have two ways:
1. Either you uncheck the option of authorizationRelevant for those InfoObjects in transaction RSD1 tab Business Explorer, but this will afect not only the MultiProvider XXX, but all the InfoProviders were that particular InfoObject is used, will never be checked for authorization purposes.
2. Create a new authorization object in RSECADMIN and click on the InfoCube button, select the MultiProvider XXX and choose only the InfoObjects you want to bypass the authorization for that MultiProvider. Grant * values for all those InfoObjects and click on the butto of special characteristics (button at the left of the button Infocube) and for the entry 0TCAIPROV restrict it to I EQ XXX (so that only the MultiProvider XXX will be afected by that authorization object). This will grant * all authorization values for those InfoObjects only for the MultiProvider XXX, so these InfoObjects will never need authorization values whenever you're using a query(ies) over that MultiProvider.
Hope this helps,
Regards,
Diogo. -
Recording which articles are being read
I want to create a cloud tag of popular topics
What i need to work out
1. How to record which articles are being read
2. How to display these in a tag cloud
3. Then when a user clicks on a tag - all the articles which
similar
tag are displayed
What i have done so far (how am i going?)
Db called tags
Tables
tag, article title, article url, article description
# each article has a few different tags
e.g
article for preventing std has the following tags
std, sex, safe sex, HIV
# the article itself doesnt exist in the database as i read
this
wasn't good for SEO. so the article itself exists on a static
page.
I have close to 100 medicla articles and add about 4 or 5 a
month
so i would love to get this working to save me time and
effort.
Many thanks
Mark Holloway
coordinator
www.healthhokkaido.comHave been using this code from the pete frei tutorial - cloud
tags -. It is working fine.
In the case of my database, each article has 3 tags
associated.
So there are 3 fields as opposed to 1 from which to count the
tags.
How could I adjust the code to take accountfor this?
Also I am a begineer so if you had the time to provide a
short explanation that would also be great.
<cfquery datasource="cart" name="tags">
SELECT COUNT(tag) AS tagCount, tag
FROM list
GROUP BY tag
</cfquery>
<cfset tagValueArray =
ListToArray(ValueList(tags.tagCount))>
<cfset max = ArrayMax(tagValueArray)>
<cfset min = ArrayMin(tagValueArray)>
<cfset diff = max - min>
<cfset distribution = diff / 3>
<style type="text/css">
<!--
.smallestTag { font-size: xx-small; }
.smallTag { font-size: small; }
.mediumTag { font-size: medium; }
.largeTag { font-size: large; }
.largestTag { font-size: xx-large; }
-->
</style>
<cfoutput query="tags">
<cfif tags.tagCount EQ min>
<cfset class="smallestTag">
<cfelseif tags.tagCount EQ max>
<cfset class="largestTag">
<cfelseif tags.tagCount GT (min + (distribution*2))>
<cfset class="largeTag">
<cfelseif tags.tagCount GT (min + distribution)>
<cfset class="mediumTag">
<cfelse>
<cfset class="smallTag">
</cfif>
<a href="/tag/#tags.tag#"
class="#class#">#tags.tag#</a>
</cfoutput> -
Hi All,
Recently, we've encountered some weird error for some users when trying to assign records to them through both the CRM UI and CRM SDK Call.
The error message saying: "The user for which we are checking a privilege should be in the same org as the context provided".
Here is the trace log for assigning a lead for one of those users (same error for other records):
[2010-08-09 13:58:06.0] Process: w3wp |Organization:d905ae4d-8d9f-df11-a1b0-00237df0351e |Thread: 22 |Category: Exception |User: fb56b107-949f-df11-a1b0-00237df0351e |Level: Error | CrmArgumentException..ctor
at CrmArgumentException..ctor(String message)
at SecurityLibrary.TryCheckPrivilege(Guid user, Guid privilege, ExecutionContext context)
at SecurityLibrary.CheckPrivilege(Guid user, Guid privilege, ExecutionContext context)
at SecurityLibrary.CheckPrivilege(Guid user, EntityMetadata metadata, PrivilegeType type, ExecutionContext context)
at CascadeEngine.AssignDB(BusinessEntityMoniker moniker, SecurityPrincipal assignee, ExecutionContext context)
at RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at LogicalMethodInfo.Invoke(Object target, Object[] values)
at InternalOperationPlugin.Execute(IPluginExecutionContext context)
at PluginStep.Execute(PipelineExecutionContext context)
at Pipeline.Execute(PipelineExecutionContext context)
at MessageProcessor.Execute(PipelineExecutionContext context)
at InternalMessageDispatcher.Execute(PipelineExecutionContext context)
at ExternalMessageDispatcher.Execute(String messageName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, PropertyBag fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at RequestBase.Process(Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at RequestBase.Process(CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at CrmServiceInternal.Execute(RequestBase request, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId)
at InProcessCrmService.Execute(Object request)
at PlatformCommand.ExecuteInternal()
at AssignRouteOnCreateUpdateListener.AssignEntity(Entity entity, LookupValue owner)
at CommunicationListener.HandlePostEvent(PlatformCommand command, Response response)
at PlatformCommand.ExecuteInternal()
at UpdateCommand.Execute()
at EntityProxy.Update(Boolean performDuplicateCheck)
at AppForm.HandleFormEventAssign(Boolean gridRefreshCallbackAdded)
at AppForm.RaiseDataEvent(FormEventId eventId)
at EndUserForm.Initialize(Entity entity)
at CustomizableForm.Execute(Entity entity, String formType)
at LeadDetailPage.ConfigureForm()
at AppUIPage.OnPreRender(EventArgs e)
at Control.PreRenderRecursiveInternal()
at Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
at Page.ProcessRequest()
at Page.ProcessRequest(HttpContext context)
at sfa_leads_edit_aspx.ProcessRequest(HttpContext context)
at CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
at ApplicationStepManager.ResumeSteps(Exception error)
at HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData)
at HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
at HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)
at ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)
>Crm Exception: Message: The user for which we are checking a privilege should be in the same org as the context provided, ErrorCode: -2147220989, InnerException: System.ArgumentException: The user for which we are checking a privilege should be in the same
org as the context provided
I checked the user id and the organization id, and there are both correct (in the database). The user id "fb56b107-949f-df11-a1b0-00237df0351e " is actually the internal CRM System User.
What could the issue be?
Can anyone help, please. ThanksAre you sure, the User which you are assigning is in the same organisaion. It seems that the Orgname which you are specifying is not correct. and the web service is pointing to other user which is not the current ms crm organisaion.
Could you please paste your code here for more details.?
Thanks, Ranjitsingh R | http://mscrm-developer.blogspot.com/ | MS CRM Consultant -
Why objects are invalid?
Hi all,
IS there any specificreasons why there are so many objects are invalid....
[per]
SQL>
SQL> select A.Owner Oown,
2 A.Object_Name Oname,
3 A.Object_Type Otype,
4 'Miss Pkg Body' Prob
5 from DBA_OBJECTS A
6 where A.Object_Type = 'PACKAGE'
7 and A.Owner ='data'
8 and not exists
9 (select 'x'
10 from DBA_OBJECTS B
11 where B.Object_Name = A.Object_Name
12 and B.Owner = A.Owner
13 and B.Object_Type = 'PACKAGE BODY')
14 union
15 select Owner Oown,
16 Object_Name Oname,
17 Object_Type Otype,
18 'Invalid Obj' Prob
19 from DBA_OBJECTS
20 where Object_Type in
21 ('PROCEDURE','PACKAGE','FUNCTION','TRIGGER','PACKAGE BODY','VIEW')
22 and Owner ='data'
23 and Status != 'VALID'
24 order by 1,4,3,2
25 /
data
CHK_CURR_CORR_REG_ART_CO_DEEP
FUNCTION Invalid Obj
data
FN_CHK_MAIN_ACT
FUNCTION Invalid Obj
data
F_GET_FC_OPBAL
FUNCTION Invalid Obj
data
F_GET_LC_OPBAL
FUNCTION Invalid Obj
data
F_GET_MAIN_FC_OPBAL
FUNCTION Invalid Obj
data
F_GET_MAIN_LC_OPBAL_DIV_1
FUNCTION Invalid Obj
data
F_GET_MAIN_LC_OPBAL_DIV_DEPT
FUNCTION Invalid Obj
data
F_GET_SUB_FC_OPBAL
FUNCTION Invalid Obj
data
F_GET_SUB_LC_OPBAL
FUNCTION Invalid Obj
data
ODB_CHK_COMB_FIRM
FUNCTION Invalid Obj
data
O_DGET_JOB_AUTO_CSV_STS_AUTO
FUNCTION Invalid Obj
data
O_DGET_JOB_CSV_STATUS
FUNCTION Invalid Obj
data
O_GET_SRN_APPL_DT
FUNCTION Invalid Obj
data
O_GET_SRN_CCT_REG_DT
FUNCTION Invalid Obj
data
O_GET_SRN_NAME1
FUNCTION Invalid Obj
data
O_GET_SRN_PAID_FEES
FUNCTION Invalid Obj
data
REM_TEST
FUNCTION Invalid Obj
data
SAR_TEST_FUNC
FUNCTION Invalid Obj
data
CUSTOMER_UPDATE
PACKAGE Invalid Obj
data
OVERLOAD_EG
PACKAGE Invalid Obj
data
PACK1
PACKAGE Invalid Obj
data
PDM_STUD_REFUND_PECS
PROCEDURE Invalid Obj
data
PDM_STUD_REFUND_TCS
PROCEDURE Invalid Obj
data
PDM_STUD_REG_CCT
PROCEDURE Invalid Obj
data
PDM_STUD_REG_FND
PROCEDURE Invalid Obj
data
PDM_STUD_REG_INT
PROCEDURE Invalid Obj
data
PDM_STUD_REG_INT_DUMMY
PROCEDURE Invalid Obj
data
PDM_STUD_REG_INT_DUP_FND_NO
PROCEDURE Invalid Obj
data
PDM_STUD_REG_PE2ART
PROCEDURE Invalid Obj
data
PDM_STUD_REG_PE2ART_RAGHU
PROCEDURE Invalid Obj
data
PDM_STUD_REG_PEI
PROCEDURE Invalid Obj
data
PDM_STUD_REG_PEII
PROCEDURE Invalid Obj
data
ODBTRG101_ITEM
TRIGGER Invalid Obj
data
ODBTRG103_REF
TRIGGER Invalid Obj
data
ODBTRG437_AAT_ACVT_UPT_DAK
TRIGGER Invalid Obj
data
ODBTRG437_AFCD
TRIGGER Invalid Obj
data
ODBTRG437_AFCD_01
TRIGGER Invalid Obj
data
ODBTRG437_AR
TRIGGER Invalid Obj
data
ODBTRG437_BIN
TRIGGER Invalid Obj
data
OV_MEM_FEE_CHK
VIEW Invalid Obj
data
A_DUMMY
PACKAGE Miss Pkg Body
data
CUSTOMER_UPDATE
PACKAGE Miss Pkg Body
data
DBMS_LOCK
PACKAGE Miss Pkg Body
data
ORNDBPKG_ART_FEE_COLL
PACKAGE Miss Pkg Body
data
OVERLOAD_EG
PACKAGE Miss Pkg Body
data
PACK1
PACKAGE Miss Pkg Body
data
PKS
PACKAGE Miss Pkg Body
data
RECEIPT_NO_VARIABLE
PACKAGE Miss Pkg Body
data
STAGE_PACK
PACKAGE Miss Pkg Body
SQL> spool offSET SERVEROUTPUT ON;
SET LINESIZE 1000;
DECLARE
|| Cursor to all Object types in All_Objects belonging to the current user.
CURSOR Cur_Object_Types
IS
SELECT DISTINCT Object_Type
FROM All_Objects
WHERE Owner = User;
|| Select the Invalid objects for the given object type.
CURSOR Cur_Invalid_Objects(
p_Object_Type IN All_Objects.Object_Type%TYPE
IS
SELECT Object_Name, Status
FROM All_Objects
WHERE Object_Type = p_Object_Type
AND Status <> 'VALID'
AND Owner = User;
|| Cursor to select the status of function based indexes.
CURSOR Cur_FuncIdx
IS
SELECT Index_Name, FuncIdx_Status
FROM User_Indexes
WHERE FuncIdx_Status <> 'ENABLED';
|| Select all public synonyms created for current user object for
|| which underlying objects does not exists.
CURSOR Cur_Synonyms
IS
SELECT Synonym_Name
FROM All_Synonyms
WHERE Owner = 'PUBLIC'
AND Table_Owner = User
AND Synonym_Name NOT IN (SELECT Object_Name
FROM User_Objects);
ln_LoopCnt NUMBER;
ln_TabIdxCnt NUMBER;
lv_Object_Type VARCHAR2(100);
lv_Object_Name VARCHAR2(100);
lv_Status VARCHAR2(100);
TYPE IObj_Type
IS
RECORD (Object_Type VARCHAR2(100)
,Object_Name VARCHAR2(100)
,Status VARCHAR2(100)
TYPE IObj_Tab_Type
IS
TABLE OF IObj_Type;
IObj_Table IObj_Tab_Type;
BEGIN
DBMS_OUTPUT.DISABLE;
DBMS_OUTPUT.ENABLE(999999999999);
DBMS_OUTPUT.PUT_LINE(CHR(10));
IObj_Table := IObj_Tab_Type();
ln_TabIdxCnt := 0;
FOR I IN Cur_Object_Types
LOOP
ln_LoopCnt := 0;
FOR J IN Cur_Invalid_Objects(I.Object_Type)
LOOP
ln_TabIdxCnt := ln_TabIdxCnt + 1;
ln_LoopCnt := ln_LoopCnt + 1;
IObj_Table.Extend;
IObj_Table(ln_TabIdxCnt).Object_Type := I.Object_Type;
IObj_Table(ln_TabIdxCnt).Object_Name := J.Object_Name;
IObj_Table(ln_TabIdxCnt).Status := J.Status;
END LOOP;
IF ln_LoopCnt = 0 THEN
ln_TabIdxCnt := ln_TabIdxCnt + 1;
IObj_Table.Extend;
IObj_Table(ln_TabIdxCnt).Object_Type := I.Object_Type;
IObj_Table(ln_TabIdxCnt).Object_Name := ' ';
IObj_Table(ln_TabIdxCnt).Status := 'NONE';
END IF;
END LOOP;
ln_LoopCnt := 0;
FOR K IN Cur_FuncIdx
LOOP
ln_TabIdxCnt := ln_TabIdxCnt + 1;
ln_LoopCnt := ln_LoopCnt + 1;
IObj_Table.Extend;
IObj_Table(ln_TabIdxCnt).Object_Type := 'FUNCTION BASED INDEX';
IObj_Table(ln_TabIdxCnt).Object_Name := K.Index_Name;
IObj_Table(ln_TabIdxCnt).Status := K.FuncIdx_Status;
END LOOP;
IF ln_LoopCnt = 0 THEN
ln_TabIdxCnt := ln_TabIdxCnt + 1;
IObj_Table.Extend;
IObj_Table(ln_TabIdxCnt).Object_Type := 'FUNCTION BASED INDEX';
IObj_Table(ln_TabIdxCnt).Object_Name := ' ';
IObj_Table(ln_TabIdxCnt).Status := 'NONE';
END IF;
ln_LoopCnt := 0;
FOR L IN Cur_Synonyms
LOOP
ln_TabIdxCnt := ln_TabIdxCnt + 1;
ln_LoopCnt := ln_LoopCnt + 1;
IObj_Table.Extend;
IObj_Table(ln_TabIdxCnt).Object_Type := 'PUBLIC SYNONYM WITHOUT UNDELYING OBJECT IN SCHEMA '||USER;
IObj_Table(ln_TabIdxCnt).Object_Name := L.Synonym_Name;
IObj_Table(ln_TabIdxCnt).Status := 'UNDERLYING OBJECT NOT FOUND';
END LOOP;
IF ln_LoopCnt = 0 THEN
ln_TabIdxCnt := ln_TabIdxCnt + 1;
IObj_Table.Extend;
IObj_Table(ln_TabIdxCnt).Object_Type := 'PUBLIC SYNONYM WITHOUT UNDELYING OBJECT IN SCHEMA '||USER;
IObj_Table(ln_TabIdxCnt).Object_Name := ' ';
IObj_Table(ln_TabIdxCnt).Status := 'NONE';
END IF;
IF IObj_Table.COUNT > 0 THEN
FOR I IN 1..IObj_Table.COUNT
LOOP
lv_Object_Type := IObj_Table(I).Object_Type;
lv_Object_Name := IObj_Table(I).Object_Name;
lv_Status := IObj_Table(I).Status;
IF I = 1 THEN
DBMS_OUTPUT.PUT_LINE('+-----------------------------------------------------------------------------------------------------------------------------+');
DBMS_OUTPUT.PUT_LINE(RPAD('| LIST OF INVALID OBJECTS',134,' ')||'|');
DBMS_OUTPUT.PUT_LINE('|-----------------------------------------------------------------------------------------------------------------------------|');
DBMS_OUTPUT.PUT_LINE(RPAD('| OBJECT TYPE | OBJECT NAME | STATUS',134,' ')||'|');
DBMS_OUTPUT.PUT_LINE('|-----------------------------------------------------------------------------------------------------------------------------|');
END IF;
DBMS_OUTPUT.PUT_LINE('| '||RPAD(lv_Object_Type,59,' ')||'| '||RPAD(lv_Object_Name,32,' ')||' | '||RPAD(lv_Status,28,' ')||'|');
END LOOP;
DBMS_OUTPUT.PUT_LINE('|-----------------------------------------------------------------------------------------------------------------------------|');
ELSE
DBMS_OUTPUT.PUT_LINE('THERE ARE NO INVALID OBJECTS IN SCHEMA '||USER||'.');
END IF;
DBMS_OUTPUT.PUT_LINE(RPAD('| NOTE: ',134,' ')||'|');
DBMS_OUTPUT.PUT_LINE(RPAD('| If you find any object in status INVALID / DISABLED / UNDERLYING OBJECT NOT FOUND, then ',134,' ')||'|');
DBMS_OUTPUT.PUT_LINE(RPAD('| execute the procedure RECOMPILE_INVALID_OBJECTS to fix the same.',134,' ')||'|');
DBMS_OUTPUT.PUT_LINE('+-----------------------------------------------------------------------------------------------------------------------------+');
END;
[\pre]
HTH.. -
Which object's monitor does a synchronized method acquire?
from the Java Tutorial for concurrency programming:
" When a thread invokes a synchronized method, it automatically acquires the intrinsic lock _for that method's object_ and releases it when the method returns. The lock release occurs even if the return was caused by an uncaught exception. "
what exactly does this mean?
do synchronized methods acquire the monitors for objects of type: java.lang.reflection.Method
please consider this code:
public class Foo {
private int counter = 0;
public synchronized void incriment() { counter++; }
public synchronized void decriment() { counter--; }
Foo f = new Foo();
Class[] sig = new Class[0];
Method m = f.getClass().getMethod("incriment", sig);
// ok. so "m" is the relevant method object.
f.incriment(); // <-- is the monitor for "m" ,
// or the monitor for "f", acquired?
.......my reading of the Concurrency Tutorial is that synchronized methods use the monitors of java.lang.reflection.Method objects?
and thus, Foo is not thread safe, right?
however, this simple change makes Foo thread-safe?
public class Foo {
private volatile int counter = 0; // "volatile"
public void incriment() { counter++; }
public void decriment() { counter--; }
}thanks.
Edited by: kogose on Feb 23, 2009 7:13 PMtensorfield wrote:
jverd wrote:
tensorfield wrote:
kogose wrote:
what exactly does this mean?It means you're complicating things.
If a method is synchronized, it is. You don't need to go beyond that. The method is synchronized.Not true. You have to know what it means for a method to be synchronized. Often people come in with the erroneous impression that it somehow prevents you from using or accessing the object in any other thread.It's very simple. If a synchronized method is called at the same time from many threads only one call will be executed at a time. The calls will be lined up and performed one after the other in sequence.
AND because synchronization is on a per object basis, when one synchronized method is being called from one thread, all synchronized methods of that same object are blocked for calling from other threads.
Simple as that.No, it's not that simple, and as stated, that is not correct. In particular, you didn't mention that for an instance method, all the various threads have to be trying to call instance methods on the same object in order for execution to be sequential.
You really can't understand Java's syncing without understanding how it relates to locks, and what it means for a method to be synchronized in terms of which lock it acquires.
Edited by: jverd on Feb 25, 2009 2:47 PM -
Hello,
I’ve finally managed to deploy my first guest cluster with a shared VHDX using a service template.
So, I now want to try and update my service template. However, whenever I try to do anything with it, in the services section, I receive the error:
Unable to perform the job because one or more of the selected objects are locked by another job. To find out which job is locking the object, in the jobs view, group by status, and find the running or cancelling job for the object. ID 2606
Well I tried that and there doesn’t seem to be a job locking the object. Both the cluster nodes appear to be up and running, and I can’t see a problem with it at all. I tried running the following query in SQL:
SELECT * FROM [VirtualManagerDB].[dbo].[tbl_VMM_Lock] where TaskID='Task_GUID'
but all this gives me is an error that says - conversion failed when converting from a character string to uniqueidentifier msg 8169, level 16, State 2, Line 1
I'm no SQL expert as you can probably tell, but I'd prefer not to deploy another service template in case this issue occurs again.
Can anyone help?No one else had this?
-
I am unable to remove a host from my Virtual Machine Manager 2012 R2. I receive the following error:
Error (2606)
Unable to perform the job because one or more of the selected objects are locked by another job.
Recommended Action
To find out which job is locking the object, in the Jobs view, group by Status, and find the running or canceling job for the object. When the job is complete, try again.
I have already tried running the following command in SQL Server Management Studio
SELECT * FROM [VirtualManagerDB].[dbo].[tbl_VMM_Lock] where TaskID='Task_GUID'
I received this error back:
Msg 8169, Level 16, State 2, Line 1
Conversion failed when converting from a character string to uniqueidentifier.
I have also tried rebooting both the host and the Virtual Machine Manager Server. After rebooting them both, I still receive the same error when trying to remove the host.
Here are my server details
VMM Server OS = Windows 2012 Standard
VMM Version = 2012 R2 3.2.7510.0
Host OS = Windows 2012 R2 Datacenter
Host Agent Version = 3.2.75.10.0
SQL Server OS = Windows 2012 Datacenter
SQL Version = 2012 SP 1 (11.0.3000.0)Hi there,
How many hosts are you managing with your VMM server?
The locking job might be the background host refresher job. Did you see any jobs in the jobs view, when the host removal job failed?
If there is no active jobs in the jobs view when this host removal job fails, can you please turn on the VMM tracing, retry the host removal, and paste back the traces for the failed job (search for exception and paste the whole stack)?
Thanks!
Cheng -
Which emails are returned in a POP3 session
Hi,
I want to implement a POP3 email client to download messages from exchange server (using C#.Net).
After a POP3 connection is made, STAT command tells the count of messages available. Messages can be downloaded in that session using the sequence numbers. I want to know how POP3 service determines which messages are NEW for which client.
Suppose two clients (one mobile and one desktop application) connect to POP3 server. Mobile client downloads some messages. Now when desktop client connects to POP3 server, how will POP3 server determine which messages are new for this session (it should
also return the messages which were downloaded by mobile client).
I looked a lot in documentation, but didn't found anything in this regard. Please help.
Regards,
Rajiv
RajivHello,
To get the number of the Record from the begining of the file, you may use the RECNUM parameter in the External Table definition:
http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/ldr_field_list.htm#sthref1264
You define a Column:
<column_name> RECNUMThen, in your Query, you may use the ORDER operator to this column.
By that way, you ensure to always respect the Record order in the file.
Hope this help.
Best regards,
Jean-Valentin -
Duplicate Resource Objects are displayed while provisioning the resource
Duplicate Resource Objects are displayed while provisioning the resource to organization after creating a new workflow through export and import process.
A workfolw already exists in the environment and I am trying to replicate the work flow with a different name . So i import all the components related to provisioning workflow rename the names of the components and make the necessary changes and import it back. after this I am getting Duplicate Resource Objects being displayed while provisioning the resource to organization .plz help.its urgentI have tried this process thrice not able to solve this problem ......unchecking allow multiple ..i don t think matters as this is provisioning to org ...n what i am telling is the list from which u select the resources to be provisioned --that list shows duplicate resource object names at a time..Each time I import an xml the number of same resource object names being displayed in the list increases ...So If I have imported three workflows then (say Resorce Object AD) appears thrice in the list. I have not given the resource objects same name in all the workflows for this to happen
Sahana -
How to find out which browsers are installed on OS?
Hi everyone,
I've been reading through the AIR doc, but it doesn't seem
like an AIR application can read OS information like what browsers
are currently installed. Further, at run time, is there a way to
tell which browsers are currently running?
Best regards,
wtI built a small example as a starting point to detect
installed applications on a Mac.
Should be easy to change it for XP/Linux.
AFAIK there is no way to get the list of running applications
from Air.
<mx:WindowedApplication xmlns:mx="
http://www.adobe.com/2006/mxml"
layout="vertical">
<mx:Script>
<![CDATA[
private function checkBrowser():void {
// change this according to the OS
var file:File =
File.documentsDirectory.resolvePath("/Applications");
res.text = "false";
for each (var o:Object in file.getDirectoryListing()) {
var name:String = o.nativePath;
if (name.search(browserName.text) != -1) {
res.text = "true";
res.visible = true;
]]>
</mx:Script>
<mx:Button label="test" click="checkBrowser()"/>
<mx:TextArea id="browserName" text="Safari"/>
<mx:Text text="Does this machine have {browserName.text}
installed?"/>
<mx:Text id="res" visible="false"/>
</mx:WindowedApplication> -
How to find out which BADIs are used
Hi Experts,
Is there any tcode where I can give the transaction or program name and find out which BADIs are used in that transaction.
thanks
sankarDear Sankar,
You can first check available BAdis and then go to SE19 to see what all have been implemented.
Please check this sample program from other thread to find BADI and enhancement for a given transaction code. You just need to create a custom program in your system by cut and paste below codes.
REPORT ZTEST.
TABLES: TSTC,
TADIR,
MODSAPT,
MODACT,
TRDIR,
TFDIR,
ENLFDIR,
SXS_ATTRT ,
TSTCT.
DATA: JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
DATA: FIELD1(30).
DATA: V_DEVCLASS LIKE TADIR-DEVCLASS.
PARAMETERS: P_TCODE LIKE TSTC-TCODE,
P_PGMNA LIKE TSTC-PGMNA .
DATA: WA_TADIR TYPE TADIR.
START-OF-SELECTION.
IF NOT P_TCODE IS INITIAL.
SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
ELSEIF NOT P_PGMNA IS INITIAL.
TSTC-PGMNA = P_PGMNA.
ENDIF.
IF SY-SUBRC EQ 0.
SELECT SINGLE * FROM TADIR
WHERE PGMID = 'R3TR'
AND OBJECT = 'PROG'
AND OBJ_NAME = TSTC-PGMNA.
MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
IF SY-SUBRC NE 0.
SELECT SINGLE * FROM TRDIR
WHERE NAME = TSTC-PGMNA.
IF TRDIR-SUBC EQ 'F'.
SELECT SINGLE * FROM TFDIR
WHERE PNAME = TSTC-PGMNA.
SELECT SINGLE * FROM ENLFDIR
WHERE FUNCNAME = TFDIR-FUNCNAME.
SELECT SINGLE * FROM TADIR
WHERE PGMID = 'R3TR'
AND OBJECT = 'FUGR'
AND OBJ_NAME EQ ENLFDIR-AREA.
MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
ENDIF.
ENDIF.
SELECT * FROM TADIR INTO TABLE JTAB
WHERE PGMID = 'R3TR'
AND OBJECT in ('SMOD', 'SXSD')
AND DEVCLASS = V_DEVCLASS.
SELECT SINGLE * FROM TSTCT
WHERE SPRSL EQ SY-LANGU
AND TCODE EQ P_TCODE.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(19) 'Transaction Code - ',
20(20) P_TCODE,
45(50) TSTCT-TTEXT.
SKIP.
IF NOT JTAB[] IS INITIAL.
WRITE:/(105) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
Sorting the internal Table
sort jtab by OBJECT.
data : wf_txt(60) type c,
wf_smod type i ,
wf_badi type i ,
wf_object2(30) type C.
clear : wf_smod, wf_badi , wf_object2.
Get the total SMOD.
LOOP AT JTAB into wa_tadir.
at first.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 'Enhancement/ Business Add-in',
41 SY-VLINE ,
42 'Description',
105 SY-VLINE.
WRITE:/(105) SY-ULINE.
endat.
clear wf_txt.
at new object.
if wa_tadir-object = 'SMOD'.
wf_object2 = 'Enhancement' .
elseif wa_tadir-object = 'SXSD'.
wf_object2 = ' Business Add-in'.
endif.
FORMAT COLOR COL_GROUP INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 wf_object2,
105 SY-VLINE.
endat.
case wa_tadir-object.
when 'SMOD'.
wf_smod = wf_smod + 1.
SELECT SINGLE MODTEXT into wf_txt
FROM MODSAPT
WHERE SPRSL = SY-LANGU
AND NAME = wa_tadir-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
when 'SXSD'.
For BADis
wf_badi = wf_badi + 1 .
select single TEXT into wf_txt
from SXS_ATTRT
where sprsl = sy-langu
and EXIT_NAME = wa_tadir-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
endcase.
WRITE:/1 SY-VLINE,
2 wa_tadir-OBJ_NAME hotspot on,
41 SY-VLINE ,
42 wf_txt,
105 SY-VLINE.
AT END OF object.
write : /(105) sy-ULINE.
ENDAT.
ENDLOOP.
WRITE:/(105) SY-ULINE.
SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No.of Exits:' , wf_smod.
WRITE:/ 'No.of BADis:' , wf_badi.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(105) 'No userexits or BADis exist'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(105) 'Transaction does not exist'.
ENDIF.
AT LINE-SELECTION.
data : wf_object type tadir-object.
clear wf_object.
GET CURSOR FIELD FIELD1.
CHECK FIELD1(8) EQ 'WA_TADIR'.
read table jtab with key obj_name = sy-lisel+1(20).
move jtab-object to wf_object.
case wf_object.
when 'SMOD'.
SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
when 'SXSD'.
SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
ENDCASE.
Alternatively, you can do the following:
1. For what ever transaction u want the enhancement .. just check for the System-->status (menu) and find out the PROGRAM name....
2. Double click on to the program name and go inside the program (Abap editor)
3. Search for "Call Customer-function " ... and u'll get some search results .. If u get results then u have enhancement in that tcode .....
4. Then it actually calls a Function module .... copy the Function module name .... go to SE80 (object navigator) click on "Repository Information system" then Customer Enhancements .... Give the Function module name in the "Components" field and click Execute ....
ull get a list of Enhancements related to that Componene....
5. Choose which ever enhancement will suit ur business need ..
6. Go to CMOD... create a project .... assign ur enhancement ... and then code ur logic.... activate ur enhancement in CMOD ....... Ur Buisness need will be solved...
For a user exit......
Finding whether there is any User Exit or not for tcode VA42
1. For what ever transaction u want the user exit .. just check for the System-->status (menu) and find out the PROGRAM name.... ( The program name would be for our scenario "SAPMV45A" )
2. Double click on to the program name and go inside the program (Abap editor)
3. Search for the word "USEREXIT" .... u ll find all the user exits in the search result .. and find ur's then ...
Hope this will help.
Regards,
Naveen. -
Authorizations for which transactions are required in BW?
Hi,
Can any ony please give some information regarding
Authorizations for which transactions are required in BW Production Support?
Regards,
AryanHi Aryan,
Authorizations for the following transactions are required in BW
1. RSA1
2. SM37
3. ST22
4. ST04
5. SE38
6. SE37
7. SM12
8. RSKC
9. SM51
10. RSRV
11.RSPC
13.RSMON
The Process Chain Maintenance (transaction RSPC) is used to define, change and view process chains.
Upload Monitor (transaction RSMO or RSRQ (if the request is known)
The Workload Monitor (transaction ST03) shows important overall key performance indicators (KPIs) for the system performance
The OS Monitor (transaction ST06) gives you an overview on the current CPU, memory, I/O and network load on an application server instance.
The database monitor (transaction ST04) checks important performance indicators in the database, such as database size, database buffer quality and database indices.
The SQL trace (transaction ST05) records all activities on the database and enables you to check long runtimes on a DB table or several similar accesses to the same data.
The ABAP runtime analysis (transaction SE30)
The Cache Monitor (accessible with transaction RSRCACHE or from RSRT) shows among other things the cache size and the currently cached queries. The Export/Import Shared buffer determines the cache size; it should be at least 40MB.
****Assign Points If Helpful****
Regards,
Ravikanth
Maybe you are looking for
-
Standard to follow for SSHR Pl/Sql report
I wrote a web report for Oracle SSHR using the PL/SQL web tool kit. Is there any standard should i follow. Any SSHR packages has to be called in my package? thanks in advance Zameer
-
Hi, as above, back up not working, message "internal disc needs repair". Can somebody help with the meaning of this. Thank you.
-
IMac 10.6.8 / iTunes 11.1.3 Homeshare
I don't know the system of our Apple TV, but we just bought it new a month ago (11/20/13) - and it won't show my entire librabry on homeshare - excuse my impatience, but ***?! I've been a mactard for a couple of decades now and this isn't getting eas
-
Indesign will not launch,cannot load plug-ins
I'm having trouble opening indeisgn. It seems it cannot load the plug-ins as I'm getting a series of error messages, which say the following: Adobe InDesign cannot load the Data Services.InDesignPlugin plug-in. The Data Services.InDesignPlugin plug-i
-
Itunes review can't see none button
help here. how can i cancel the billing payment. im just downloading free aplications./\