Distinguished Contributor
Posts: 142
Registered: ‎01-06-2003
Message 1 of 2 (269 Views)
Accepted Solution

doc.TransactionManager or db.TransactionManager

269 Views, 1 Replies
01-28-2013 11:56 PM

Dumb question: What is the difference? When to use one or the other? I've made the usual investigation and found these very good articles:



Can anyone add some additional insight? It appears that db.TransactionManager will serve in all situations. Thanks, Dale

Valued Mentor
Posts: 328
Registered: ‎05-12-2009
Message 2 of 2 (258 Views)

Re: doc.TransactionManager or db.TransactionManager

01-29-2013 01:41 AM in reply to: Dale.Bartlett

Loooking at it quickly in reflector it inherits from TransactionManager and looks like it just adds the functionality to flush graphics


public sealed class TransactionManager : TransactionManager
    // Methods
    internal TransactionManager(IntPtr unmanagedObject, [MarshalAs(UnmanagedType.U1)] bool bAutoDelete);
    protected sealed override void DeleteUnmanagedObject();
    public void EnableGraphicsFlush([MarshalAs(UnmanagedType.U1)] bool doEnable);
    public void FlushGraphics();
    internal unsafe AcTransactionManager* GetImpObj();
    public sealed override Transaction StartTransaction();

    // Properties
    public override Transaction TopTransaction { get; }



 It uses a AppTransaction that inherits from Transaction looks it just overrides Commit() and uses base functionality then flushes the graphics.


internal sealed class AppTransaction : Transaction
    // Fields
    private TransactionManager m_mgr;

    // Methods
    protected internal AppTransaction(IntPtr unmanagedPointer, [MarshalAs(UnmanagedType.U1)] bool autoDelete, TransactionManager mgr) : base(unmanagedPointer, autoDelete)
        this.m_mgr = mgr;

    public sealed override void Commit()
        ((TransactionManager) this.TransactionManager).FlushGraphics();

    // Properties
    public override TransactionManager TransactionManager
            return this.m_mgr;



So looks like if want to call FlushGraphics for each commit then use the Document TransactionManager.


Now that I say that seems like I just saw Tony mention to use the Documents Transmamnger when it came to regenerating graphics or something similar. 


You can also find your answers @ TheSwamp
Are you familiar with the Autodesk Expert Elites? The Expert Elite program is made up of customers that help other customers by sharing knowledge and exemplifying an engaging style of collaboration. To learn more, please visit our Expert Elite website.
Need installation help?

Start with some of our most frequented solutions or visit the Installation and Licensing Forum to get help installing your software.