code: public EnvironmentConfig setEnvMonitorTxnsTimeout(final int timeout) {
          if (timeout != 0 && timeout < 1000) {
              throw new InvalidSettingException("Transaction timeout should be greater than a second");
          }
          setSetting(ENV_MONITOR_TXNS_TIMEOUT, timeout);
          if (timeout > 0 && timeout < getEnvMonitorTxnsCheckFreq()) {
              setEnvMonitorTxnsCheckFreq(timeout);
          }
          return this;
      }
docs: Sets {@linkplain Transaction} timeout in milliseconds. If transaction doesn't finish in this timeout then
  it is reported in logs as stuck along with stack trace which it was created with. Default value is {@code 0}
  which means that no timeout for a {@linkplain Transaction} is defined. In that case, no monitor of stuck
  transactions is started. Otherwise it is started for each {@linkplain Environment}, though consuming only a
  single {@linkplain Thread} amongst all environments created within a single class loader.
  <p>Mutable at runtime: no
  
  @param timeout timeout of a {@linkplain Transaction} in milliseconds
  @return this {@code EnvironmentConfig} instance
  @see #setEnvMonitorTxnsCheckFreq(int)