Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 73 additions & 1 deletion docs/Data-insights/Extras/FRAPI.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ FusionReactor functionality from directly within your application code
and web pages.

!!! info "Learn more"
[FusionReactor API JavaDoc](https://fusion-reactor.com/frapi/8_0_0/)
[FusionReactor API JavaDoc](https://fusion-reactor.com/frapi/8_0_0/)
[FusionReactor API JavaDoc 2026.1.2](./frapi)

## FRAPI Examples in ColdFusion

Expand Down Expand Up @@ -305,6 +306,77 @@ The code:
```


### Transaction Surrogate

Introduced in 2026.1.2, ITransactionSurrogate is a new interface that allows you to access more transaction details. IFusionRequestSurrogate extends this interface to provide the same insights.

FRAPI has new methods to retrieve details:
- `getClientID` to return the instance's FR client ID (this can change during runtime)
- `getRunningTransactions` to return an array of running transactions (not just web requests)
- `getRecentTransactions` to return an array of recent, finished transactions (not just web requests)

Usage example:

```cfm
<cfset frapiClass = createObject("java", "com.intergral.fusionreactor.api.FRAPI")>
<cfset frapi = frapiClass.getInstance()>

<cfoutput>
#frapi.getClientId()#
</cfoutput>

<hr>

<cfset txnArray = frapi.getRecentTransactions()/>

<cfloop index="i" from=1 to=#ArrayLen(txnArray)#>

<cfset txn = txnArray[i]>

<cfset masterTxn = txn.getMasterTransaction()>
<cfset parentTxn = txn.getParentTransaction()>
<cfset deepestActiveChild = txn.getDeepestActiveChild()>
<cfset directChildren = txn.getDirectChildren()>
<cfset trappedThrowable = txn.getTrappedThrowable()>

<cfoutput>
Description: #txn.getDescription()#<br/>
Secure Description: #txn.getSecureDescription()#<br/>
Application Name: #txn.getApplicationName()#<br/>
Transaction Name: #txn.getTransactionName()#<br/>
Flavor: #txn.getFlavor()#<br/>
Sub Flavor: #txn.getSubFlavor()#<br/>
Full Transaction ID: #txn.getFullTransactionId()#<br/>
Transaction ID: #txn.getTransactionId()#<br/>
Per-Flavor Transaction ID: #txn.getPerFlavorTransactionId()#<br/>
Start Time Millis: #txn.getStartTime()#<br/>
Start Time Nanos: #txn.getStartTimeNanos()#<br/>
End Time Millis: #txn.getEndTime()#<br/>
End Time Nanos: #txn.getEndTimeNanos()#<br/>
Duration Millis: #txn.getDuration()#<br/>
Duration Nanos: #txn.getDurationNanos()#<br/>
Properties Size: #txn.getProperties().size()#<br/>
Master Transaction Txn ID: #isNull(masterTxn) ? "no master transaction" : masterTxn.getTransactionId()#<br/>
Parent Transaction Txn ID: #isNull(parentTxn) ? "no parent transaction" : parentTxn.getTransactionId()#<br/>
Deepest Active Child Txn ID: #isNull(deepestActiveChild) ? "no deepest active child transaction" : deepestActiveChild.getTransactionId()#<br/>
Direct Children (count): #ArrayLen(directChildren)#<br/>
Has Children: #txn.hasChildren()#</br>
Is Master Transaction: #txn.isMasterTransaction()#<br/>
Status: #txn.getStatus()#<br/>
Thread ID: #txn.getThreadId()#<br/>
Thread Name: #txn.getThreadName()#<br/>
Is Finished: #txn.isFinished()#<br/>
Is In Error: #txn.isInError()#<br/>
Trapped Throwable: #isNull(trappedThrowable) ? "no trapped throwable" : trappedThrowable.getMessage()#<br/>
Trace ID: #txn.getTraceId()#<br/>
Span ID: #txn.getSpanId()#<br/>
Sampled State: #txn.getSampledState()#<br/>
<hr/>
</cfoutput>
</cfloop>
```


### Summary

As we hope you can see, the FRAPI is a very powerful new tool which has
Expand Down
4 changes: 4 additions & 0 deletions docs/Data-insights/Extras/frapi/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Manifest-Version: 1.0
Created-By: Maven Javadoc Plugin 3.2.0
Build-Jdk-Spec: 9

37 changes: 37 additions & 0 deletions docs/Data-insights/Extras/frapi/allclasses-frame.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (9.0.4) on Thu May 21 14:30:12 UTC 2026 -->
<title>All Classes (FusionReactor 2026.1.2 Core API Specification)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="date" content="2026-05-21">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-1.10.2.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="com/intergral/fusionreactor/capi/ConfigurationInvalidExceptionSurrogate.html" title="class in com.intergral.fusionreactor.capi" target="classFrame">ConfigurationInvalidExceptionSurrogate</a></li>
<li><a href="com/intergral/fusionreactor/capi/ConfigurationSurrogate.html" title="interface in com.intergral.fusionreactor.capi" target="classFrame"><span class="interfaceName">ConfigurationSurrogate</span></a></li>
<li><a href="com/intergral/fusionreactor/api/FRAPI.html" title="class in com.intergral.fusionreactor.api" target="classFrame">FRAPI</a></li>
<li><a href="com/intergral/fusionreactor/api/FRNameConstants.html" title="interface in com.intergral.fusionreactor.api" target="classFrame"><span class="interfaceName">FRNameConstants</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IFusionRequestSurrogate.html" title="interface in com.intergral.fusionreactor.api" target="classFrame"><span class="interfaceName">IFusionRequestSurrogate</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IProbiCallback.html" title="interface in com.intergral.fusionreactor.api" target="classFrame"><span class="interfaceName">IProbiCallback</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IProbiCallback.ICallbackRegistration.html" title="interface in com.intergral.fusionreactor.api" target="classFrame"><span class="interfaceName">IProbiCallback.ICallbackRegistration</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IProbiCallback.IMetricStore.html" title="interface in com.intergral.fusionreactor.api" target="classFrame"><span class="interfaceName">IProbiCallback.IMetricStore</span></a></li>
<li><a href="com/intergral/fusionreactor/api/ITransactionSurrogate.html" title="interface in com.intergral.fusionreactor.api" target="classFrame"><span class="interfaceName">ITransactionSurrogate</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IVersion.html" title="interface in com.intergral.fusionreactor.api" target="classFrame"><span class="interfaceName">IVersion</span></a></li>
</ul>
</div>
</body>
</html>
37 changes: 37 additions & 0 deletions docs/Data-insights/Extras/frapi/allclasses-noframe.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (9.0.4) on Thu May 21 14:30:12 UTC 2026 -->
<title>All Classes (FusionReactor 2026.1.2 Core API Specification)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="date" content="2026-05-21">
<link rel="stylesheet" type="text/css" href="stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="script.js"></script>
<script type="text/javascript" src="jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="jquery/jquery-1.10.2.js"></script>
<script type="text/javascript" src="jquery/jquery-ui.js"></script>
</head>
<body>
<h1 class="bar">All&nbsp;Classes</h1>
<div class="indexContainer">
<ul>
<li><a href="com/intergral/fusionreactor/capi/ConfigurationInvalidExceptionSurrogate.html" title="class in com.intergral.fusionreactor.capi">ConfigurationInvalidExceptionSurrogate</a></li>
<li><a href="com/intergral/fusionreactor/capi/ConfigurationSurrogate.html" title="interface in com.intergral.fusionreactor.capi"><span class="interfaceName">ConfigurationSurrogate</span></a></li>
<li><a href="com/intergral/fusionreactor/api/FRAPI.html" title="class in com.intergral.fusionreactor.api">FRAPI</a></li>
<li><a href="com/intergral/fusionreactor/api/FRNameConstants.html" title="interface in com.intergral.fusionreactor.api"><span class="interfaceName">FRNameConstants</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IFusionRequestSurrogate.html" title="interface in com.intergral.fusionreactor.api"><span class="interfaceName">IFusionRequestSurrogate</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IProbiCallback.html" title="interface in com.intergral.fusionreactor.api"><span class="interfaceName">IProbiCallback</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IProbiCallback.ICallbackRegistration.html" title="interface in com.intergral.fusionreactor.api"><span class="interfaceName">IProbiCallback.ICallbackRegistration</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IProbiCallback.IMetricStore.html" title="interface in com.intergral.fusionreactor.api"><span class="interfaceName">IProbiCallback.IMetricStore</span></a></li>
<li><a href="com/intergral/fusionreactor/api/ITransactionSurrogate.html" title="interface in com.intergral.fusionreactor.api"><span class="interfaceName">ITransactionSurrogate</span></a></li>
<li><a href="com/intergral/fusionreactor/api/IVersion.html" title="interface in com.intergral.fusionreactor.api"><span class="interfaceName">IVersion</span></a></li>
</ul>
</div>
</body>
</html>
Loading
Loading