Hi, Regarding how to implement a Function in Apache Geode and coding the execute method, the following is stated in [1]:
"To propagate an error condition or exception back to the caller of the function, throw a FunctionException from the execute method. Geode transmits the exception back to the caller as if it had been thrown on the calling side. See the Java API documentation for FunctionException<https://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/execute/FunctionException.html> for more information." And as per [2]: "if a GemFire client executes a Function on a server, and the function's execute method throws a FunctionException, the server logs the exception as a warning, and transmits it back to the calling client, which throws it" So, for every FunctionException thrown by a user Server Function, the server logs the exception with the corresponding stack trace. This could imply, depending on the logic implemented in the user Server Function, that the log of the server is packed with these messages (which probably are not providing extra useful information given that the exception will reach the client), and making it difficult to analyze the logs to find other relevant events. Given that Apache Geode recommends the use of FunctionException as the means to propagate an error condition or exception back to the caller, we could argue if a FunctionException thrown by a user Function should have any reflection, at all, in the server logs. Besides, as said before, depending on the amount of the exceptions generated, this can complicate the analysis of log files, require much more space for logs storage and have a negative impact in performance. For the above reasons, I would like to propose to change the level of these messages to debug level. A configuration parameter to enable this possibility could be provided for backward compatibility. Please, feel free to comment on this proposal. Thanks, Alberto [1] https://geode.apache.org/docs/guide/114/developing/function_exec/function_execution.html [2] https://geode.apache.org/releases/latest/javadoc/org/apache/geode/cache/execute/FunctionException.html