<?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 .NET Core async transaction: Exit Calls / Threads column empty in Function Trace in Splunk AppDynamics</title>
    <link>https://community.splunk.com/t5/Splunk-AppDynamics/NET-Core-async-transaction-Exit-Calls-Threads-column-empty-in/m-p/760850#M12018</link>
    <description>&lt;P&gt;Hi Team,&lt;/P&gt;&lt;P&gt;I am testing a simple ASP.NET Core async application with AppDynamics .NET Agent.&lt;/P&gt;&lt;P&gt;The agent is successfully detecting:&lt;BR /&gt;- Business Transactions&lt;BR /&gt;- HTTP Exit Calls&lt;BR /&gt;- Database Calls&lt;BR /&gt;- Service Topology&lt;BR /&gt;- Async timings&lt;/P&gt;&lt;P&gt;I can see the transaction flow map correctly between ServiceA and ServiceB, and database calls are also visible.&lt;/P&gt;&lt;P&gt;However, in the Transaction Snapshot -&amp;gt; Call Graph / Function Trace view, the “Exit Calls / Threads” column is empty for async execution.&lt;/P&gt;&lt;P&gt;Application Flow:&lt;BR /&gt;1. ASP.NET Core endpoint receives request&lt;BR /&gt;2. Async HTTP call using HttpClient&lt;BR /&gt;3. Async SQLite DB operations&lt;BR /&gt;4. Response returned successfully&lt;/P&gt;&lt;P&gt;Sample Code:&lt;/P&gt;&lt;P&gt;```csharp&lt;BR /&gt;using Microsoft.AspNetCore.Builder;&lt;BR /&gt;using Microsoft.Data.Sqlite;&lt;BR /&gt;using Microsoft.Extensions.Hosting;&lt;BR /&gt;using System.Net.Http;&lt;/P&gt;&lt;P&gt;var builder = WebApplication.CreateBuilder(args);&lt;BR /&gt;var app = builder.Build();&lt;/P&gt;&lt;P&gt;string dbPath = "Data Source=test.db";&lt;/P&gt;&lt;P&gt;using (var conn = new SqliteConnection(dbPath))&lt;BR /&gt;{&lt;BR /&gt;conn.Open();&lt;/P&gt;&lt;P&gt;var cmd = conn.CreateCommand();&lt;BR /&gt;cmd.CommandText =&lt;BR /&gt;"CREATE TABLE IF NOT EXISTS Test (Id INTEGER PRIMARY KEY, Name TEXT)";&lt;/P&gt;&lt;P&gt;cmd.ExecuteNonQuery();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;app.MapGet("/call", async () =&amp;gt;&lt;BR /&gt;{&lt;BR /&gt;var httpClient = new HttpClient();&lt;/P&gt;&lt;P&gt;var response =&lt;BR /&gt;await httpClient.GetStringAsync("&lt;A href="http://localhost:5002/api/hello" target="_blank" rel="noopener"&gt;http://localhost:5002/api/hello&lt;/A&gt;");&lt;/P&gt;&lt;P&gt;using var conn = new SqliteConnection(dbPath);&lt;/P&gt;&lt;P&gt;await conn.OpenAsync();&lt;/P&gt;&lt;P&gt;var insertCmd = conn.CreateCommand();&lt;BR /&gt;insertCmd.CommandText =&lt;BR /&gt;"INSERT INTO Test (Name) VALUES ('APM Test')";&lt;/P&gt;&lt;P&gt;await insertCmd.ExecuteNonQueryAsync();&lt;/P&gt;&lt;P&gt;var selectCmd = conn.CreateCommand();&lt;BR /&gt;selectCmd.CommandText = "SELECT COUNT(*) FROM Test";&lt;/P&gt;&lt;P&gt;var count =&lt;BR /&gt;(long)await selectCmd.ExecuteScalarAsync();&lt;/P&gt;&lt;P&gt;return new&lt;BR /&gt;{&lt;BR /&gt;message = "Service A response",&lt;BR /&gt;serviceB = response,&lt;BR /&gt;dbCount = count&lt;BR /&gt;};&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;app.Run();&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="adhi_0-1778485267643.png" style="width: 400px;"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/42047i4725DB6DB3411646/image-size/medium?v=v2&amp;amp;px=400" role="button" title="adhi_0-1778485267643.png" alt="adhi_0-1778485267643.png" /&gt;&lt;/span&gt;&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="adhi_1-1778485295825.png" style="width: 400px;"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/42048i8AC7F3FB5B58F0DC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="adhi_1-1778485295825.png" alt="adhi_1-1778485295825.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Questions:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Is this expected behavior for async/await execution in .NET Core?&lt;/LI&gt;&lt;LI&gt;Does AppDynamics correlate async continuations differently from thread-based execution?&lt;/LI&gt;&lt;LI&gt;Is there any configuration needed to populate the Exit Calls / Threads column for async transactions?&lt;/LI&gt;&lt;LI&gt;Does this work differently for synchronous requests?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;I have attached screenshots of:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Transaction Flow Map&lt;/LI&gt;&lt;LI&gt;Function Trace / Call Graph&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Any clarification would be helpful.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
    <pubDate>Mon, 11 May 2026 07:47:22 GMT</pubDate>
    <dc:creator>adhi</dc:creator>
    <dc:date>2026-05-11T07:47:22Z</dc:date>
    <item>
      <title>.NET Core async transaction: Exit Calls / Threads column empty in Function Trace</title>
      <link>https://community.splunk.com/t5/Splunk-AppDynamics/NET-Core-async-transaction-Exit-Calls-Threads-column-empty-in/m-p/760850#M12018</link>
      <description>&lt;P&gt;Hi Team,&lt;/P&gt;&lt;P&gt;I am testing a simple ASP.NET Core async application with AppDynamics .NET Agent.&lt;/P&gt;&lt;P&gt;The agent is successfully detecting:&lt;BR /&gt;- Business Transactions&lt;BR /&gt;- HTTP Exit Calls&lt;BR /&gt;- Database Calls&lt;BR /&gt;- Service Topology&lt;BR /&gt;- Async timings&lt;/P&gt;&lt;P&gt;I can see the transaction flow map correctly between ServiceA and ServiceB, and database calls are also visible.&lt;/P&gt;&lt;P&gt;However, in the Transaction Snapshot -&amp;gt; Call Graph / Function Trace view, the “Exit Calls / Threads” column is empty for async execution.&lt;/P&gt;&lt;P&gt;Application Flow:&lt;BR /&gt;1. ASP.NET Core endpoint receives request&lt;BR /&gt;2. Async HTTP call using HttpClient&lt;BR /&gt;3. Async SQLite DB operations&lt;BR /&gt;4. Response returned successfully&lt;/P&gt;&lt;P&gt;Sample Code:&lt;/P&gt;&lt;P&gt;```csharp&lt;BR /&gt;using Microsoft.AspNetCore.Builder;&lt;BR /&gt;using Microsoft.Data.Sqlite;&lt;BR /&gt;using Microsoft.Extensions.Hosting;&lt;BR /&gt;using System.Net.Http;&lt;/P&gt;&lt;P&gt;var builder = WebApplication.CreateBuilder(args);&lt;BR /&gt;var app = builder.Build();&lt;/P&gt;&lt;P&gt;string dbPath = "Data Source=test.db";&lt;/P&gt;&lt;P&gt;using (var conn = new SqliteConnection(dbPath))&lt;BR /&gt;{&lt;BR /&gt;conn.Open();&lt;/P&gt;&lt;P&gt;var cmd = conn.CreateCommand();&lt;BR /&gt;cmd.CommandText =&lt;BR /&gt;"CREATE TABLE IF NOT EXISTS Test (Id INTEGER PRIMARY KEY, Name TEXT)";&lt;/P&gt;&lt;P&gt;cmd.ExecuteNonQuery();&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;app.MapGet("/call", async () =&amp;gt;&lt;BR /&gt;{&lt;BR /&gt;var httpClient = new HttpClient();&lt;/P&gt;&lt;P&gt;var response =&lt;BR /&gt;await httpClient.GetStringAsync("&lt;A href="http://localhost:5002/api/hello" target="_blank" rel="noopener"&gt;http://localhost:5002/api/hello&lt;/A&gt;");&lt;/P&gt;&lt;P&gt;using var conn = new SqliteConnection(dbPath);&lt;/P&gt;&lt;P&gt;await conn.OpenAsync();&lt;/P&gt;&lt;P&gt;var insertCmd = conn.CreateCommand();&lt;BR /&gt;insertCmd.CommandText =&lt;BR /&gt;"INSERT INTO Test (Name) VALUES ('APM Test')";&lt;/P&gt;&lt;P&gt;await insertCmd.ExecuteNonQueryAsync();&lt;/P&gt;&lt;P&gt;var selectCmd = conn.CreateCommand();&lt;BR /&gt;selectCmd.CommandText = "SELECT COUNT(*) FROM Test";&lt;/P&gt;&lt;P&gt;var count =&lt;BR /&gt;(long)await selectCmd.ExecuteScalarAsync();&lt;/P&gt;&lt;P&gt;return new&lt;BR /&gt;{&lt;BR /&gt;message = "Service A response",&lt;BR /&gt;serviceB = response,&lt;BR /&gt;dbCount = count&lt;BR /&gt;};&lt;BR /&gt;});&lt;/P&gt;&lt;P&gt;app.Run();&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="adhi_0-1778485267643.png" style="width: 400px;"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/42047i4725DB6DB3411646/image-size/medium?v=v2&amp;amp;px=400" role="button" title="adhi_0-1778485267643.png" alt="adhi_0-1778485267643.png" /&gt;&lt;/span&gt;&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="adhi_1-1778485295825.png" style="width: 400px;"&gt;&lt;img src="https://community.splunk.com/t5/image/serverpage/image-id/42048i8AC7F3FB5B58F0DC/image-size/medium?v=v2&amp;amp;px=400" role="button" title="adhi_1-1778485295825.png" alt="adhi_1-1778485295825.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Questions:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Is this expected behavior for async/await execution in .NET Core?&lt;/LI&gt;&lt;LI&gt;Does AppDynamics correlate async continuations differently from thread-based execution?&lt;/LI&gt;&lt;LI&gt;Is there any configuration needed to populate the Exit Calls / Threads column for async transactions?&lt;/LI&gt;&lt;LI&gt;Does this work differently for synchronous requests?&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;I have attached screenshots of:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Transaction Flow Map&lt;/LI&gt;&lt;LI&gt;Function Trace / Call Graph&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Any clarification would be helpful.&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;</description>
      <pubDate>Mon, 11 May 2026 07:47:22 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-AppDynamics/NET-Core-async-transaction-Exit-Calls-Threads-column-empty-in/m-p/760850#M12018</guid>
      <dc:creator>adhi</dc:creator>
      <dc:date>2026-05-11T07:47:22Z</dc:date>
    </item>
  </channel>
</rss>

