Hi Danny,
in such a case, I would simply search the codebase for the service name
to see where it is referenced.
In most cases, an eeca or seca is the cause for unexpected high
frequency service calls.
Best regards,
Michael Brohl
ecomify GmbH - www.ecomify.de
Am 05.02.21 um 11:58 schrieb Danny Trunk:
Hi Girish,
I already put this into the service wrapper method right before the runSync
call (dumpedStack is a static AtomicBoolean):
if (!dumpedStack.getAndSet(true)) {
log.warn("Stack trace:\n{}",
Arrays.stream(Thread.currentThread().getStackTrace()).map(StackTraceElement::toString).collect(Collectors.joining("\\n")));
}
But that's not really helpful because the information included doesn't contain
service names and I don't think async service calls will be respected with that
approach.
Girish Vasmatkar <[email protected]> hat am 05.02.2021 11:08
geschrieben:
Hi Danny,
While this feature isn't available, you can just put a try catch (in the
service you think is getting called too much). In the try block, throw an
exception and in the catch just do printStackTrace(), you will get to know
where that service is getting called from.
This is of course an ugly solution but works especially if you're in the
development phase. That said, it would be a nice feature to have the
DispatchContext have information about current execution context.
Best Regards,
Girish
On Fri, Feb 5, 2021 at 1:08 PM Danny Trunk <[email protected]> wrote:
Hi Deepak Dixit,
the use case is debugging. There's a service getting called a lot and I
can't find the origin while checking all the servicedef/entitydef XMLs. And
I think it's quite useful to have such a feature.
Kind regards
Danny.
Deepak Dixit <[email protected]> hat am 04.02.2021 18:19
geschrieben:
Hi Danny Trunk,
Could you please share the use case why you need a service call stack?
If you share the use case it may be possible you will get a better
answer.
Kind Regards,
Deepak Dixit
DIRECTOR OF PRODUCT ENGINEERING
mobile: +91 9826754548
email: [email protected]
*www.hotwax.co <http://www.hotwax.co/>*
On Thu, Feb 4, 2021 at 8:40 PM Danny Trunk <[email protected]> wrote:
Hello,
let's imagine Service A is calling Service B directly through
dispatcher.runSync and Service C is running as an SECA action of
Service B.
The call stack would be: Service A -> Service B -> Service C (through
SECA)
Or let's imagine Service D is running as an EECA action of entity
Product.
The call stack would be: Product Entity -> Service D (through EECA)
Is it possible to get that information somehow?
I can't find anything helpful in DispatchContext or GenericDispatcher.
Output into a log file would be great.
Kind regards
Danny.
<pre>ZYRES digital media systems GmbH
Stuttgarter Straße 25 60329 Frankfurt am Main Phone +49 69 98 55 99 - 0
Fax +49 69 98 55 99 - 11
Firmensitz: Stuttgarter Straße 25 60329 Frankfurt am Main
Registergericht: Amtsgericht Frankfurt am Main, HRB 76374
Geschäftsführer: Sebastian Schirmer
http://www.zyres.com/</pre>
<pre>ZYRES digital media systems GmbH
Stuttgarter Straße 25 60329 Frankfurt am Main Phone +49 69 98 55 99 - 0
Fax +49 69 98 55 99 - 11
Firmensitz: Stuttgarter Straße 25 60329 Frankfurt am Main
Registergericht: Amtsgericht Frankfurt am Main, HRB 76374
Geschäftsführer: Sebastian Schirmer
http://www.zyres.com/</pre>