<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)? in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11391016#M11849</link>
    <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;EM&gt;&amp;gt;&amp;gt; you misread the code. The break statement will only skip the &lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;EM&gt;&amp;gt;&amp;gt; second tr.Commit() statement because it will exit&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Yep, you are correct with this, my fault, sorry!&lt;/P&gt;
&lt;P&gt;However (not sure about this) ... if the line with "break" exits the for-each loop ... will the transaction then be disposed (as you are also exiting the "using ..." statement) ... one of the reasons why I never exit a loop with "break"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- alfred -&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 30 Aug 2022 17:10:48 GMT</pubDate>
    <dc:creator>Alfred.NESWADBA</dc:creator>
    <dc:date>2022-08-30T17:10:48Z</dc:date>
    <item>
      <title>Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11389366#M11842</link>
      <description>&lt;P&gt;By using &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/510537"&gt;@CADbloke&lt;/a&gt; 's excellent CADtest, I've finally managed to get my automated testing going. But I do have a problem with using Transaction in the context of this unit test framework.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The issue here &lt;A href="https://github.com/CADbloke/CADtest/blob/master/CADtest-CS/BaseTests.cs#L70" target="_blank" rel="noopener"&gt;lies with the line tr.Commit()&lt;/A&gt;:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt;using System;
using System.Collections.Generic;
using System.Text;
using System.Threading.Tasks;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
#if (ACAD2006 || ACAD2007 || ACAD2008 || ACAD2009|| ACAD2010|| ACAD2011 || ACAD2012)
    using Autodesk.AutoCAD.ApplicationServices;
    using Application = Autodesk.AutoCAD.ApplicationServices.Application;
#else
using Autodesk.AutoCAD.ApplicationServices.Core;
using Application = Autodesk.AutoCAD.ApplicationServices.Core.Application;
#endif
using CADtest.Helpers;
using NUnit.Framework;
using System.IO;

namespace CADTestRunner
{
    public abstract class BaseTests
    {
        protected void ExecuteActionDWG(String pDrawingPath, params Action&amp;lt;Database, Transaction&amp;gt;[] pActionList)
        {
            bool buildDefaultDrawing;

            if (String.IsNullOrEmpty(pDrawingPath))
            {
                buildDefaultDrawing = true;
            }
            else
            {
                buildDefaultDrawing = false;

                if (!File.Exists(pDrawingPath))
                {
                    Assert.Fail("The file '{0}' doesn't exist", pDrawingPath);
                    return;
                }
            }

            Exception exceptionToThrown = null;

            Document doc = Application.DocumentManager.MdiActiveDocument;
            using (doc.LockDocument())
            {
                using (Database db = new Database(buildDefaultDrawing, false))
                {
                    if (!String.IsNullOrEmpty(pDrawingPath))
                        db.ReadDwgFile(pDrawingPath, FileOpenMode.OpenForReadAndWriteNoShare, true, null);

                    using (new WorkingDatabaseSwitcher(db))
                    {
                        foreach (var item in pActionList)
                        {
                            using (Transaction tr = db.TransactionManager.StartTransaction())
                            {
                                try
                                {
                                    item(db, tr);
                                }
                                catch (Exception ex)
                                {
                                    exceptionToThrown = ex;
                                    tr.Commit();//comment it will cause the test runner to hang, if an exception is thrown

                                    //stop execution of actions
                                    break;
                                }

                                tr.Commit();  //comment it will cause the test runner to hang

                            }

                        }

                    }

                }

            }

            //throw exception outside of transaction
            //Sometimes Autocad crashes when exception throws
            if (exceptionToThrown != null)
            { 
                throw exceptionToThrown;
            }
        }

    }
}&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And here's the parallel stack trace:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Hang thread.png" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1110452i0B3434CD233DE45E/image-size/large?v=v2&amp;amp;px=999" role="button" title="Hang thread.png" alt="Hang thread.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I notice that if you disable all of the test case except the readonly one ( ie: just Ignore all test cases except &lt;A href="https://github.com/CADbloke/CADtest/blob/master/CADtest-CS/SampleTests.cs#L117" target="_blank" rel="noopener"&gt;Test_method_name&lt;/A&gt;), and you comment the above tr.Commit(), it should still work because Commit &lt;A href="https://help.autodesk.com/view/OARX/2023/ENU/?guid=GUID-C3DE4301-EAC3-4745-A434-9F28EE87AB73" target="_blank" rel="noopener"&gt;only commits your changes&lt;/A&gt;. If you have no changes ( this is what &lt;EM&gt;readonly&lt;/EM&gt; means, right?), then it shouldn't matter whether you commit or not.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But under the test environment, it just hangs at disposing the transaction. Under normal environment where I launch AutoCAD/Civil 3D properly, then commenting the tr.Commit() works just fine.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have another test case ( which is way more complicated than this one), it also involves only readonly operation, but when disposing the transaction, the code crashes with AccessViolationException instead of hang.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I'm using NUnit 3.13.3/&lt;A href="https://docs.nunit.org/articles/nunit/running-tests/NUnitLite-Runner.html" target="_blank" rel="noopener"&gt;NUnitLite 3.13.3&lt;/A&gt;/Civil 3D 2023.1 version. I just don't know whether the problem occurs at AutoCAD/Civil 3D end or NUnit end, someone perhaps can shed some lights on this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Sep 2022 02:00:16 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11389366#M11842</guid>
      <dc:creator>soonhui</dc:creator>
      <dc:date>2022-09-01T02:00:16Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11389872#M11843</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;If you do not commit a transaction, it is automatically aborted (i.e. everything within the transaction is rolled back), so, committing is always cheaper even when there's no change.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Aug 2022 08:52:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11389872#M11843</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2022-08-30T08:52:59Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11389942#M11844</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/109424"&gt;@_gile&lt;/a&gt;&amp;nbsp;, thanks for the tips.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But... the program shouldn't hang ( or crash) if I don't commit, as long as my operations are strictly read only. Right?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That's why if it hangs, I would be curious to know how to fix it, if it's fixable.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Aug 2022 09:31:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11389942#M11844</guid>
      <dc:creator>soonhui</dc:creator>
      <dc:date>2022-08-30T09:31:50Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11390112#M11845</link>
      <description>&lt;P&gt;Excuse me if I wasn't clear.&lt;/P&gt;
&lt;P&gt;If you do not explicitly commit the transaction, the transaction automatically aborts.&lt;/P&gt;</description>
      <pubDate>Tue, 30 Aug 2022 10:48:56 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11390112#M11845</guid>
      <dc:creator>_gile</dc:creator>
      <dc:date>2022-08-30T10:48:56Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11390181#M11846</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/109424"&gt;@_gile&lt;/a&gt;&amp;nbsp;, the issue has nothing to do with whether the transaction should be aborted or not if it's not committed.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The problem, as I mentioned in the beginning, is that if I don't call Transaction.Commit(), then in this particular context, &lt;EM&gt;it will hang the whole test program &lt;/EM&gt;( you can reproduce the problem following my steps above). But it really shouldn't, and it wouldn't if I run the AutoCAD program normally with a C# program ( instead of running via NUnit context like this one).&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Aug 2022 11:31:13 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11390181#M11846</guid>
      <dc:creator>soonhui</dc:creator>
      <dc:date>2022-08-30T11:31:13Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11390193#M11847</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;EM&gt;&amp;gt;&amp;gt; via NUnit context&amp;nbsp;&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;I don't have experience with this, however from your code above:&lt;/P&gt;
&lt;P&gt;If you code runs into an exception then tr.Commit is called twice, which does not work.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- alfred -&lt;/P&gt;</description>
      <pubDate>Tue, 30 Aug 2022 11:32:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11390193#M11847</guid>
      <dc:creator>Alfred.NESWADBA</dc:creator>
      <dc:date>2022-08-30T11:32:04Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11390272#M11848</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/389680"&gt;@Alfred.NESWADBA&lt;/a&gt;&amp;nbsp;, you misread the code. The break statement will only skip the second tr.Commit() statement because it will exit from the for statement immediately after it is being reached.&amp;nbsp; So tr.Commit() won't be called twice.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anyway my question has nothing to do with tr.Commit() but rather the absence of it will cause the test program to hang.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Aug 2022 12:02:21 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11390272#M11848</guid>
      <dc:creator>soonhui</dc:creator>
      <dc:date>2022-08-30T12:02:21Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11391016#M11849</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;EM&gt;&amp;gt;&amp;gt; you misread the code. The break statement will only skip the &lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080"&gt;&lt;EM&gt;&amp;gt;&amp;gt; second tr.Commit() statement because it will exit&lt;/EM&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Yep, you are correct with this, my fault, sorry!&lt;/P&gt;
&lt;P&gt;However (not sure about this) ... if the line with "break" exits the for-each loop ... will the transaction then be disposed (as you are also exiting the "using ..." statement) ... one of the reasons why I never exit a loop with "break"&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;- alfred -&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 30 Aug 2022 17:10:48 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11391016#M11849</guid>
      <dc:creator>Alfred.NESWADBA</dc:creator>
      <dc:date>2022-08-30T17:10:48Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11394310#M11850</link>
      <description>&lt;P&gt;Let's get back to the main issue, I've updated the parallel stack trace, hopefully it's helpful.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Hang thread.png" style="width: 999px;"&gt;&lt;img src="https://forums.autodesk.com/t5/image/serverpage/image-id/1110452i0B3434CD233DE45E/image-size/large?v=v2&amp;amp;px=999" role="button" title="Hang thread.png" alt="Hang thread.png" /&gt;&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 01 Sep 2022 03:03:35 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11394310#M11850</guid>
      <dc:creator>soonhui</dc:creator>
      <dc:date>2022-09-01T03:03:35Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11397785#M11851</link>
      <description>&lt;P&gt;I'm very interested if you can get this to work. I tried many times with no luck.&amp;nbsp;&lt;BR /&gt;Sorry if it is not of much help, as I dont remember all the details, its been a while.&amp;nbsp;&lt;BR /&gt;But I think I finally came to the conclusion that AutoCAD didn't like that an outside program (NUnit) modifying things at the same time as AutoCAD.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 Sep 2022 14:08:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11397785#M11851</guid>
      <dc:creator>nshupeFMPE3</dc:creator>
      <dc:date>2022-09-02T14:08:36Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11407531#M11852</link>
      <description>&lt;P&gt;&lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/11150561"&gt;@nshupeFMPE3&lt;/a&gt;&amp;nbsp;, I can get it to work if I run the tests in acad.exe, and it also sort of works in accoreconsole.exe.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;But I do encounter&lt;A href="https://forums.autodesk.com/t5/net/running-accoreconsole-exe-with-nunitlite-will-cause/td-p/11407512" target="_blank" rel="noopener"&gt; a bug&lt;/A&gt; when I'm running it in accoreconsole.exe, though the tests should still run just fine.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;It should be noted that the previous versions of AcCoreConsole&amp;nbsp;&lt;/SPAN&gt;&lt;A href="https://forums.autodesk.com/t5/net/accoreconsole-exe-in-2015-doesn-t-do-system-console-writeline/m-p/5539352#M43603" target="_blank" rel="noopener"&gt;doesn't have this problem&lt;/A&gt;&lt;SPAN&gt;&amp;nbsp;as far back in 2015( though it does have other problem. In this sense, 2015 version is worse than 2013 version). The quality of Autodesk products seem to be declining, and the regression bugs in AcCoreConsole is an indicative of that.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 08 Sep 2022 03:15:32 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11407531#M11852</guid>
      <dc:creator>soonhui</dc:creator>
      <dc:date>2022-09-08T03:15:32Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11408592#M11853</link>
      <description>You don't need to use a transaction at all if you don't want to, you can use open and using statements, or OpenCloseTransaction just closes with no abort</description>
      <pubDate>Thu, 08 Sep 2022 12:35:51 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11408592#M11853</guid>
      <dc:creator>daniel_cadext</dc:creator>
      <dc:date>2022-09-08T12:35:51Z</dc:date>
    </item>
    <item>
      <title>Re: Why commiting transaction is a must even for read only operation ( in nunit test, that is)?</title>
      <link>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11417318#M11854</link>
      <description>&lt;P&gt;To answer my own question, the Commit is a MUST even for Read operation, only if I use NoDocument=false in the below code:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="csharp"&gt; using (Database db = new Database(buildDefaultDrawing, false)) //change the second parameter to true means no need for Transaction.Commit()&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If I change the second parameter to true, then I don't need the Transaction.Commit() for the READ operation.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Sep 2022 03:14:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/why-commiting-transaction-is-a-must-even-for-read-only-operation/m-p/11417318#M11854</guid>
      <dc:creator>soonhui</dc:creator>
      <dc:date>2022-09-13T03:14:59Z</dc:date>
    </item>
  </channel>
</rss>

