WeakHashMap, cleanup and API level guarantees

When does WeakHashMap groom/cleanup the entries i.e. remove the WeakReferences from the Map? It appears it does it when the WeakHashMap is accessed. In other words, if for some reason the WeakHashMap is NOT accessed, the entries continue to stay as WeakReferences.
Is there an API level guarantee as to how the cleanup works? I do not see it documented in WeakHashMap API.
A hashtable-based Map implementation with weak keys. An entry in a WeakHashMap will automatically be removed when its key is no longer in ordinary use. More precisely, the presence of a mapping for a given key will not prevent the key from being discarded by the garbage collector, that is, made finalizable, finalized, and then reclaimed. When a key has been discarded its entry is effectively removed from the map, so this class behaves somewhat differently from other Map implementations.
Again, if there is any reference on how and when this -- An entry in a WeakHashMap will automatically be removed when its key is no longer in ordinary use. -- happens, it will be useful.
With regards,
M.P. Ardhanareeswaran

user514049 wrote:
This is more than casual curiosity.
WeakHashMap is actually working for me by "accident". In my case, I am storing some PhantomReferences in this Map as values (and not keys) for cleanup. There is a quiet period before the application is torn down during which there are no updates to the WeakHashMap. My application is able to retrieve the PhantomReferences at close time and clean them up.
It appears that it is "not advisable" to rely on this behavior.Not sure exactly what you mean here. Are the keys referenced anywhere else, or only in the map? If only in the map, then the entries can be removed from the map and the keys GCed at any time. If you need to know that you'll have access to some entry at some point in your code, then you'll have to make sure that there's a reference to the key outside of the map.
If "by accident" you mean that, so far, the entries are always there even without you maintaining other references to the keys, then, yes, that is just happenstance, and not to be relied on.
To quote the third sentence of WHM's javadoc (emphasis mine): "More precisely, the presence of a mapping for a given key will not prevent the key from being discarded by the garbage collector, that is, made finalizable, finalized, and then reclaimed."
Edited by: jverd on Nov 11, 2011 12:46 PM

Similar Messages

  • [svn] 4662: Refactoring to reflect new FXG utils package names to com.adobe .fxg.* for public APIs and com.adobe.internal.fxg. * for internal APIs not guaranteed to remain constant.

    Revision: 4662
    Author: [email protected]
    Date: 2009-01-25 16:05:12 -0800 (Sun, 25 Jan 2009)
    Log Message:
    Refactoring to reflect new FXG utils package names to com.adobe.fxg.* for public APIs and com.adobe.internal.fxg.* for internal APIs not guaranteed to remain constant.
    QA: No
    Doc: No
    Checkintests Pass
    Modified Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/TextFXGGraphics.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/fxg/TextHelper.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/media/FXGTranscoder.java
    Added Paths:
    flex/sdk/trunk/modules/fxgutils/src/java/com/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/FXGConstants.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/fxg/FXGException.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/AbstractFXGNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/AbstractShapeNode.jav a
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/BitmapGraphicNode.jav a
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/DefinitionNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/DelegateNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/EllipseNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/FXGNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/FillNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/FilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GradientEntryNode.jav a
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GraphicContentNode.ja va
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GraphicContext.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GraphicNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GroupDefinitionNode.j ava
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/GroupNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/LibraryNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/LineNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/MaskPropertyNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/MaskableNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/MaskingNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/PathNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/PlaceObjectNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/RectNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/ScalableGradientNode. java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/StrokeNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/TextGraphicNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/TextNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/TransformNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/fills/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/fills/AbstractFillNod e.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/fills/BitmapFillNode. java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/fills/LinearGradientF illNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/fills/RadialGradientF illNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/fills/SolidColorFillN ode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/AbstractFilte rNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/BevelFilterNo de.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/BlurFilterNod e.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/ColorMatrixFi lterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/DropShadowFil terNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/GlowFilterNod e.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/GradientBevel FilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/filters/GradientGlowF ilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/strokes/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/strokes/AbstractStrok eNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/strokes/LinearGradien tStrokeNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/strokes/RadialGradien tStrokeNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/strokes/SolidColorStr okeNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/AbstractCharacte rTextNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/AbstractTextNode .java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/BRNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/CDATANode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/ParagraphNode.ja va
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/text/SpanNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/transforms/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/transforms/AbstractTr ansformNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/transforms/ColorTrans formNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/transforms/MatrixNode .java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/BevelType.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/BlendMode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/Caps.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/InterpolationMe thod.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/Joints.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/Kerning.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/LineBreak.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/MaskType.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/ScaleMode.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/ScalingGrid.jav a
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/SpreadMethod.ja va
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/WhiteSpaceColla pse.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/dom/types/Winding.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/sax/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/sax/FXGSAXScanner.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/AbstractFXGGraphics.j ava
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/FXGGraphics.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/ImageHelper.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/ShapeHelper.java
    flex/sdk/trunk/modules/fxgutils/src/java/com/adobe/internal/fxg/swf/TypeHelper.java
    Removed Paths:
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/FXGConstants.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/FXGException.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/AbstractFXGNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/AbstractShapeNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/BitmapGraphicNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/DefinitionNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/DelegateNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/EllipseNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/FXGNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/FillNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/FilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/GradientEntryNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/GraphicContentNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/GraphicContext.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/GraphicNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/GroupDefinitionNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/GroupNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/LibraryNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/LineNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/MaskPropertyNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/MaskableNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/MaskingNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/PathNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/PlaceObjectNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/RectNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/ScalableGradientNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/StrokeNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/TextGraphicNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/TextNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/TransformNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/fills/AbstractFillNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/fills/BitmapFillNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/fills/LinearGradientFillNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/fills/RadialGradientFillNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/fills/SolidColorFillNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/filters/AbstractFilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/filters/BevelFilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/filters/BlurFilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/filters/ColorMatrixFilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/filters/DropShadowFilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/filters/GlowFilterNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/filters/GradientBevelFilterNode.ja va
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/filters/GradientGlowFilterNode.jav a
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/strokes/AbstractStrokeNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/strokes/LinearGradientStrokeNode.j ava
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/strokes/RadialGradientStrokeNode.j ava
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/strokes/SolidColorStrokeNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/text/AbstractCharacterTextNode.jav a
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/text/AbstractTextNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/text/BRNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/text/CDATANode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/text/ParagraphNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/text/SpanNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/transforms/AbstractTransformNode.j ava
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/transforms/ColorTransformNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/transforms/MatrixNode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/BevelType.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/BlendMode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/Caps.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/InterpolationMethod.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/Joints.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/Kerning.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/LineBreak.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/MaskType.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/ScaleMode.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/ScalingGrid.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/SpreadMethod.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/WhiteSpaceCollapse.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/dom/types/Winding.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/sax/FXGSAXScanner.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/swf/AbstractFXGGraphics.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/swf/FXGGraphics.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/swf/ImageHelper.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/swf/ShapeHelper.java
    flex/sdk/trunk/modules/fxgutils/src/java/flash/fxg/swf/TypeHelper.java

    The problem with submitting a bug report is I don't know how to replicate it.
    The java file showed up on the "Referenced Libraries". I removed it from there and it fixed the problem.
    If I return it to the classpath via Eclipse it doesn't demonstrate the problem.
    I don't know how it got into the classpath to cause this problem. I even tried editing the classpath (which I'm fairly certain was not how the problem was caused) but that didn't replicate the problem.
    I didn't check the .classpath to see what the entry was before I removed it via eclipse so I don't know what the entry looked like. The problem wasn't in the version is SVN so I don't know how to find what changes were made.
    If you sill want a bug report I can enter one but with out any instructions on how to replicate it.

  • How to pass kerberos ticket at api level?

    Hi,
    Am relatively new in the domain of Java Security, JAAS and JGSS. After reading the tutorials and examples, I was able to do authentication and message transfer using Kerberos LoginModule. All the examples demonstrates message transfer and credential passing at socket level.
    But in normal scenario's a server application exposes its APIs and the clients invokes remote methods on the server instead of sending data at a socket level.
    My question is can I use kerberos and JGSS to pass security context at api level without adding an arguement for security context in each api call?
    In simple terms, Is it possible to implicitly pass user credential's to server at each api call instead of exchanging/encrypting data at socket level?
    Is there any other mechanism that meets this kind of requirement?
    Thanks,
    Kapil

    Seema, could you please elaborate on how GSS context is established?
    The examples show that context is established after series of message passing between client and server inside a while loop
    while (!peerContext.isEstablished()) {
                       byteToken = peerContext.initSecContext(byteToken, 0, byteToken.length);
                    if (byteToken != null) {
                        outStream.writeInt(byteToken.length);
                        outStream.write(byteToken );
                        outStream.flush();
                    }//if
                    if (!peerContext.isEstablished()) {
                        byteToken  = new byte[inStream.readInt()];
                        inStream.readFully(byteToken );
                    }//if
                }//while (!peerContext...)Is there any other way to establish GSS context ?
    Thanks & Regards,
    Kapil

  • Schema level and table level supplemental logging

    Hello,
    I'm setting up bi- directional DML replication between two oracle databases. I have enabled supplemental logging database level by running this command-
    SQL>alter database add supplemental log data (primary key) columns;
    Database altered.
    SQL> select SUPPLEMENTAL_LOG_DATA_MIN, SUPPLEMENTAL_LOG_DATA_PK, SUPPLEMENTAL_LOG_DATA_UI from v$database;
    SUPPLEME SUP SUP
    IMPLICIT YES NO
    -My question is should I enable supplemental logging table level also(for DML replication only)? should I run the below command also?
    GGSCI (db1) 1> DBLOGIN USERID ggs_admin, PASSWORD ggs_admin
    Successfully logged into database.
    GGSCI (db1) 2> ADD TRANDATA schema.<table-name>
    what is the deference between schema level and table level supplemental logging?

    For Oracle, ADD TRANDATA by default enables table-level supplemental logging. The supplemental log group includes one of the following sets of columns, in the listed order of priority, depending on what is defined on the table:
    1. Primary key
    2. First unique key alphanumerically with no virtual columns, no UDTs, no functionbased
    columns, and no nullable columns
    3. First unique key alphanumerically with no virtual columns, no UDTs, or no functionbased
    columns, but can include nullable columns
    4. If none of the preceding key types exist (even though there might be other types of keys
    defined on the table) Oracle GoldenGate constructs a pseudo key of all columns that
    the database allows to be used in a unique key, excluding virtual columns, UDTs,
    function-based columns, and any columns that are explicitly excluded from the Oracle
    GoldenGate configuration.
    The command issues an ALTER TABLE command with an ADD SUPPLEMENTAL LOG DATA clause that
    is appropriate for the type of unique constraint (or lack of one) that is defined for the table.
    When to use ADD TRANDATA for an Oracle source database
    Use ADD TRANDATA only if you are not using the Oracle GoldenGate DDL replication feature.
    If you are using the Oracle GoldenGate DDL replication feature, use the ADD SCHEMATRANDATA command to log the required supplemental data. It is possible to use ADD
    TRANDATA when DDL support is enabled, but only if you can guarantee one of the following:
    ● You can stop DML activity on any and all tables before users or applications perform DDL on them.
    ● You cannot stop DML activity before the DDL occurs, but you can guarantee that:
    ❍ There is no possibility that users or applications will issue DDL that adds new tables whose names satisfy an explicit or wildcarded specification in a TABLE or MAP
    statement.
    ❍ There is no possibility that users or applications will issue DDL that changes the key definitions of any tables that are already in the Oracle GoldenGate configuration.
    ADD SCHEMATRANDATA ensures replication continuity should DML ever occur on an object for which DDL has just been performed.
    You can use ADD TRANDATA even when using ADD SCHEMATRANDATA if you need to use the COLS option to log any non-key columns, such as those needed for FILTER statements and KEYCOLS clauses in the TABLE and MAP parameters.
    Additional requirements when using ADD TRANDATA
    Besides table-level logging, minimal supplemental logging must be enabled at the database level in order for Oracle GoldenGate to process updates to primary keys and
    chained rows. This must be done through the database interface, not through Oracle GoldenGate. You can enable minimal supplemental logging by issuing the following DDL
    statement:
    SQL> alter database add supplemental log data;
    To verify that supplemental logging is enabled at the database level, issue the following statement:
    SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
    The output of the query must be YES or IMPLICIT. LOG_DATA_MIN must be explicitly set, because it is not enabled automatically when other LOG_DATA options are set.
    If you required more details refer Oracle® GoldenGate Windows and UNIX Reference Guide 11g Release 2 (11.2.1.0.0)

  • Interveiw question for AD L3 and L4 level

    Hi
    I have asked below question in AD L4 interview question in one company?
    What is disaster recovery in AD, any example?
    What can be reason of user slow authentication in Domain for 1 site for multiple users and how can we check it from DC side.
    Can i get more Question and answer for AD L3 and L4 level?

    Hi
    I have asked below question in AD L4 interview question in one company?
    1.What is disaster recovery in AD, any example?
    How to perform a disaster recovery restoration of Active Directory :http://support.microsoft.com/kb/263532
    Active Directory Disaster Recovery:http://windows.uwaterloo.ca/server/disaster/ms_docs/disaster.htm
    2.What can be reason of user slow authentication in Domain for 1 site for multiple users and how can we check it from DC side.
    This could be due to dns misconfig,GPO causing the slow logon,health of dc is not good,Ad sites and service not set correctly etc.
    Can i get more Question and answer for AD L3 and L4 level?
    Hi,
    See my line comments.Apart form interview question you need to create test lab and test the domain env.There are the infrastructure planning and design guides whci may be helpful to you.
    http://www.microsoft.com/downloads/details.aspx?FamilyId=AD3921FB-8224-4681-9064-075FDF042B0C&displaylang=en
    Hope this helps
    Best Regards,
    Sandesh Dubey.
    MCSE|MCSA:Messaging|MCTS|MCITP:Enterprise Adminitrator |
    My Blog
    Disclaimer: This posting is provided "AS IS" with no warranties or guarantees , and confers no rights.

  • When is Verizon going to provide Android v4.3 API level 18?

    Google released Jelly Bean 4.3 API level 18 on the 24th of July 2013.  When is this going to be provided for the Droid 4?  Mine still has Android version 4.1.2, which was released a year ago, and lacks support for low energy Bluetooth and many other new features. 
    It is unacceptable for Verizon to lag so far behind the Google developers, especially since Google bought Motorola.

    Likely never. The only phone on 4.3 right now period is the Nexus 4, and the new Nexus 7 tablet has 4.3. The GPE Galaxy S4 and GPE HTC One are probably next in line to get the update, along with possibly the Google Play version of the Galaxy Nexus.
    non-Nexus/GPE phones, if they get the update, will lag behind by 6 months to a year, minimum, as normal.
    Your Droid 4 was released on 2.3, updated to 4.0 then 4.1, it's already seen RIDICULOUSLY more support than the average android phone will ever see.
    Many of the "new features" you refer to require hardware your Droid 4 doesn't have, for example updated versions of the bluetooth hardware inside to conform to the newer bluetooth standard, or require drivers to support the features that haven't yet been written for the particular chipsets and components used in your Droid 4.
    Most phones, if they get an android software version update at all, get one update in their life cycle. Yours has seen two, be happy to have gotten the updates you got.

  • How to improve the query performance in to report level and designer level

    How to improve the query performance in to report level and designer level......?
    Plz let me know the detail view......

    first its all based on the design of the database, universe and the report.
    at the universe Level, you have to check your Contexts very well to get the optimal performance of the universe and also your joins, keep your joins with key fields, will give you the best performance.
    at the report level, try to make the reports dynamic as much as you can, (Parameters) and so on.
    and when you create a paremeter try to get it match with the key fields in the database.
    good luck
    Amr

  • Function modules to get wbs level budgets and activity level cost

    hai gurus can any one tell me the function modules or any other bapis to get the wbs level budgets and activity level costs
    thanx in advance
    afzal

    ok

  • Question about CHKDSK ,S.M.A.R.T and low level format

    hi,
    I like to know the difference     exactly  between CHKDSK and S.M.A.R.T and low level format program(I know that  low level format  writes zero"s) I mean besides the low level format writes  zero's what onother
    benefits it  has , it repairs some bad sectors or mark bad sectors ect?
    very short explanation wil be enough.
    thanks
    johan
    h.david

    H.david
    1-CHKDSK http://en.wikipedia.org/wiki/CHKDSK  CHKDSK verifies the
    file system integrity on
    hard disks or
    floppy disk and fixes logical file system errors.
    2-S.M.A.R.T http://en.wikipedia.org/wiki/S.M.A.R.T.  smart is a monitoring system for
    computer
    hard disk drives (HDDs) and
    solid-state drives (SSDs)<sup class="reference" id="cite_ref-1">[1]</sup> to detect and report on various indicators of reliability, in the hope of anticipating failures.
    3-Low level formatting  http://en.wikipedia.org/wiki/Low_level_format
    Wanikiya and Dyami--Team Zigzag

  • Dunning Old dinning level and dunning level

    Hi experts,
    I have one issue in dunning. the issue is where the dunning history for particular customer shows as old dunning level as 3 and dunning level as 2.
    i have checked  the customer master there is change in the dunning procdure. But the document and master data shows the correct dunning level with the new procdure.
    so i didnt understand what is the OLD dunning level and dunning level  for the same cusomer. the issue is only with one customer.
    I have also checked with old procdure with same customer in table MHNK. there are some notices done. but how come the current invoice shows the old dunning level for the same invoice.
    can any once explain me how to proceed.
    Regards
    Ashok

    Hi
    Thnks for the reply so we need to apply this note for making the old dunning level and dunning level makes equal after you run the program.
    Also one more doubt, since i have observed that the dunning after the parameters entered. looks like this
    Parameters were maintained
    Dunning selection executed, job deleted
    Dunning notice printed, job deleted.
    the above doesnt means that they will update the old dunning level right.
    Regards
    Ashok

  • Through Programaticaly How To change Dunning Procedure and Dunning level

    I am having the requirement to change the dunning procedure and dunning level programatically.
    Is there any Function module or BAPI or sample code where I can change the dunning procedure and push the dunning level to
    30(No matter at what level but it has to push to 30).

    Try these function modules available through T.code FQEVENTS
    FKK_SAMPLE_0351 or  FKK_SAMPLE_0307   or FKK_SAMPLE_0744 or FKK_SAMPLE_0304     
    Or try creating one procedure to exclusively handle a particular level /dunning activity  only and replace the procedure in the master data
    Hope it offers some help

  • Difference between sales order schedule line and item level data

    Hi All,
    Could you please let me know what is the difference between sales order schedule line and item level data?
    Thanks,
    Ramya

    Hi Ramya,
    Sales order schedule line contains del date, order qty, rounded qty, confirmed qty, delivery qty, schedule line category, purchase requisition etc.,  ie It contains the full details of sales order data with respect to the scheduled line of delivery.  The total quantity of a sales order item can be subdivided into schedule lines that contain the various subsets with the corresponding delivering dates.
    Sales order Item level data contains details of the item in the sales order like material code, net price, net value, UoM, PO details, reason for rejection if any, material group,billing date, plant etc., ie this
    contains the full details of item irrespective of scheduled line.
    Regards,
    R. Senthil Mareeswaran.

  • How to create a new field for Q3 - QM notification in Header and item level

    Dear All,
    l
               Sub: How to create a new field for Q3 - QM notification in Header and item level
    Ref. the link --> Quality Notification
    We want to create a new field in header level and item level.
    As per the thread the solution is given below.
    In the IMG Config: Quality Management -> Quality Notification -> Notification Types -> Define screen areas for notification types Then Choose 'Define screen areas' Then Click on 'New entries' button Now, select the relevant Notification Type and click in 'Enter'. Select the 'Iten Cases' register and remember to setup the Tabstrip Header, Icon, etc. Set the 'Tabstrip active' flag. Then Save.
    Quality Notification -> Notification Types -> Define screen areas for notification types
    WE ARE UNABLE TO FIND IN CUSTOMIZATION PATH --> DEFINE SCREEN AREAS FOR NOTIFICATION TYPES.
    Please help.
    Question No. 2 :
    THE REQUIREMENT IS GIVEN BELOW.
    We want to hide the field in Q3 - QM Notification
    In header --> Reference tab --> Item (sub heading) --> "DEFECT LOCATION" FIELD TO BE ELIMINATED (HIDE)
    Ref the link --> Quality notification
    The solutiion is given below.
    Hi Sami,
    We can hide the collumns using the Transaction OQM1 and Program Name SAPLIQS0.
    Lets say Defect location need to be hidden, the field TXTCDOT need to have the radio button HIDE.
    Hope this will suffice your requirement.
    Kindly ask me if you need any other details.
    Thanks & Regards,
    Srinivas.D
    Hi Sami,
    We can hide the collumns using the Transaction OQM1 and Program Name SAPLIQS0.
    Lets say Defect location need to be hidden, the field TXTCDOT need to have the radio button HIDE.
    Hope this will suffice your requirement.
    Kindly ask me if you need any other details.
    Thanks & Regards,
    Srinivas.D
    By double clicking the "DEFECTIVE QUANTITY (EXTERNAL), WE COULD NOT GET --> field TXTCDOT .
    Plese do the needful.
    We are using ECC6.0 Ehp3 and Ehp4.
    With Best Regards,
    Raghu Sharma

    Dear Pushpa,
    Transaction Code :SHD0 is working fine.
    Please accept my sincere thanks for your sharing your Knowledge.
    I am able to fulfill my
    Regarding the enhancement, I have not tried.
    Once I will complete, I will award the fulll marks to you.
    With Best Regards,
    Raghu Sharma

  • Solution and Service level Reporting in Solution Manager

    Hi All,
    I have got some requirement , can anyone please provide me the link/blog regarding Solution and Service level Reporting.
    Thanks,
    vk

    Hi,
    got confused since previous you said it was enterprise service report,
    https://websmp207.sap-ag.de/~form/sapnet?_SCENARIO=01100035870000000202&_SHORTKEY=01100035870000742027&_OBJECT=011000358700000999072011E
    the Following SAP notes
    https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1442799
    https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1250529
    https://websmp230.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1391968
    Thanks
    Jansi

  • How to find out the IPS and DS Service Pack and patch levels in windows server.

    Hi,
    I have installed the Information Platform Services 4.0 and Data services 4.0 in windows QA system, now we need to install the same version of IPS & DS  in windows PRD system for this how could we find out the exact version of IPS & DS  ( Service pack and patch levels ) and where we can find the same.
    Many Thanks,
    Sudheer

    Hi Sudheer,
    On a Windows Operating Systems you can check the “Programs and Features” in control panel.You can see a list of both the Name and Version number of SAP BusinessObjects that is installed.
    option 2:
    Open CMC go to Settings. In the properties, you will find the Product Version.
    Please check below SAP notes for more information.
    http://service.sap.com/sap/support/notes/1602088
    Regards,
    Pavan

Maybe you are looking for

  • Error while transporting Generic Datasource in R/3

    Hi All, I have created a generic datasource(R/3) on a view. As it was in $TMP, I have assigned the datasource, ZABCD, and the view, ZVIEW to a devlopment package and also to a transport request. I released the Transport request and when I tried to im

  • How do i delete my icloud account from an ipod i dont have access to anymore?

    So i sold someone my old itouch yesterday and realized i had forgotten to delete my icloud account from it. Now when I try to use the Find My Iphone app the old ipod shows up. I want to delete this ipod off the app but it says it is active and wont l

  • CFP-1808 shared variables timestamp

    Hi, I need to control and acquire data from a cFP Ethernet module (cFP-1808) to a PXI RT system. I have tested two ways of doing it: 1. Bind shared variables to the Fieldpoint channels. Works great except for the fact that I have to record the timest

  • ABAP Outbound Proxy with multiple entries

    I have message type as follows. MT_Proxy_Matmas_out  -- DT_Proxy_Matmas_out Matnr         1..unbounded    Material_Num   1..1    Material_Dec    1..1 Message Inrerface: MI_proxy_Matmas_out. Generated Proxy has following objects. 1. Class     ZMCO_MI_

  • Trying to use set_value in onChange event handler

    Is it acceptable to use p_session.set_value in the onChange event handler? I am trying to do a couple of things in this event handler, I am trying to validate a code and if the code is invalid I wish to show an alert. If the code is valid I then wish