Re: Scheduled command fails with "session is closed" after client session closed.
JB, In my example the command is generating a report using command line parameters. I can see use cases where schedule command perform other repetitive tasks requiring parameter input. That said, this may be an edge case with many workarounds or better implementations. I will be using is a cron job that launches bin/client with the desired command. Paul Spencer > On May 17, 2022, at 2:20 AM, Jean-Baptiste Onofré wrote: > > Hi Paul, > > if your command uses some session resources (like stream), it's normal > as the session is closed when you quit the shell. > > For mail reporting, it's better to create a service that you trigger > with a command (one shot) or with the scheduled (trigger/cron). > > Regards > JB > > On Mon, May 16, 2022 at 7:20 PM Paul Spencer > wrote: >> >> Karaf 4.3.6 >> >> I have scheduled a command to run on a cron schedule, but the command fails >> with "java.lang.IllegalStateException: session is closed" after I exit the >> Karaf client session. The command will only run in the client session >> scheduling the command. >> >> Since command execution can be schedule, I would expect the client session >> scheduling the command would not be required for each execution. >> >> What is I doing wrong? >> >> >> *** >> * Command to schedule the execution of foo:emailReport at 5PM >> ** >> karaf@root()> scheduler:schedule-command --cron "0 0 17 * * ?" >> "foo:emailReport -r j...@example.com &" >> karaf@root()> scheduler:list >> Name │ Schedule >> ──┼─── >> foo:emailReport -r j...@example.com │ cron(0 0 17 * * ?) >> >> *** >> * karaf.log >> *** >> 2022-05-15T17:00:00,025 | WARN | Karaf_Worker-5 | ScriptJob >> | 80 - org.apache.karaf.scheduler.core - 4.3.6 | Error executing >> scheduled command foo:emailReport -r j...@example.com & >> java.lang.IllegalStateException: session is closed >>at >> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:171) >> ~[?:?] >>at >> org.apache.karaf.shell.impl.console.ConsoleSessionImpl.execute(ConsoleSessionImpl.java:496) >> ~[?:?] >>at >> org.apache.karaf.scheduler.command.support.CommandJob.execute(CommandJob.java:40) >> [!/:?] >>at >> org.apache.karaf.scheduler.core.QuartzJobExecutor.execute(QuartzJobExecutor.java:58) >> [!/:?] >>at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [!/:?] >>at >> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) >> [!/:?] >> 2022-05-15T17:03:41,930 | INFO | Karaf_Worker-6 | >> ServiceRequestEmailReceiver | 152 - >> com.alexanderpest.bugdata.msg-email-receiver - 2.0.2 | Message count = 554 >> >> >> karaf@root()> scheduler:list >> Name │ Schedule >> ──┼─── >> foo:emailReport -r j...@example.com & │ cron(0 0 17 * * ?) >> >> >> Paul Spencer
Re: Scheduled command fails with "session is closed" after client session closed.
Hi Paul, if your command uses some session resources (like stream), it's normal as the session is closed when you quit the shell. For mail reporting, it's better to create a service that you trigger with a command (one shot) or with the scheduled (trigger/cron). Regards JB On Mon, May 16, 2022 at 7:20 PM Paul Spencer wrote: > > Karaf 4.3.6 > > I have scheduled a command to run on a cron schedule, but the command fails > with "java.lang.IllegalStateException: session is closed" after I exit the > Karaf client session. The command will only run in the client session > scheduling the command. > > Since command execution can be schedule, I would expect the client session > scheduling the command would not be required for each execution. > > What is I doing wrong? > > > *** > * Command to schedule the execution of foo:emailReport at 5PM > ** > karaf@root()> scheduler:schedule-command --cron "0 0 17 * * ?" > "foo:emailReport -r j...@example.com &" > karaf@root()> scheduler:list > Name │ Schedule > ──┼─── > foo:emailReport -r j...@example.com │ cron(0 0 17 * * ?) > > *** > * karaf.log > *** > 2022-05-15T17:00:00,025 | WARN | Karaf_Worker-5 | ScriptJob > | 80 - org.apache.karaf.scheduler.core - 4.3.6 | Error executing > scheduled command foo:emailReport -r j...@example.com & > java.lang.IllegalStateException: session is closed > at > org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:171) > ~[?:?] > at > org.apache.karaf.shell.impl.console.ConsoleSessionImpl.execute(ConsoleSessionImpl.java:496) > ~[?:?] > at > org.apache.karaf.scheduler.command.support.CommandJob.execute(CommandJob.java:40) > [!/:?] > at > org.apache.karaf.scheduler.core.QuartzJobExecutor.execute(QuartzJobExecutor.java:58) > [!/:?] > at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [!/:?] > at > org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) > [!/:?] > 2022-05-15T17:03:41,930 | INFO | Karaf_Worker-6 | > ServiceRequestEmailReceiver | 152 - > com.alexanderpest.bugdata.msg-email-receiver - 2.0.2 | Message count = 554 > > > karaf@root()> scheduler:list > Name │ Schedule > ──┼─── > foo:emailReport -r j...@example.com & │ cron(0 0 17 * * ?) > > > Paul Spencer
Scheduled command fails with "session is closed" after client session closed.
Karaf 4.3.6 I have scheduled a command to run on a cron schedule, but the command fails with "java.lang.IllegalStateException: session is closed" after I exit the Karaf client session. The command will only run in the client session scheduling the command. Since command execution can be schedule, I would expect the client session scheduling the command would not be required for each execution. What is I doing wrong? *** * Command to schedule the execution of foo:emailReport at 5PM ** karaf@root()> scheduler:schedule-command --cron "0 0 17 * * ?" "foo:emailReport -r j...@example.com &" karaf@root()> scheduler:list Name │ Schedule ──┼─── foo:emailReport -r j...@example.com │ cron(0 0 17 * * ?) *** * karaf.log *** 2022-05-15T17:00:00,025 | WARN | Karaf_Worker-5 | ScriptJob | 80 - org.apache.karaf.scheduler.core - 4.3.6 | Error executing scheduled command foo:emailReport -r j...@example.com & java.lang.IllegalStateException: session is closed at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:171) ~[?:?] at org.apache.karaf.shell.impl.console.ConsoleSessionImpl.execute(ConsoleSessionImpl.java:496) ~[?:?] at org.apache.karaf.scheduler.command.support.CommandJob.execute(CommandJob.java:40) [!/:?] at org.apache.karaf.scheduler.core.QuartzJobExecutor.execute(QuartzJobExecutor.java:58) [!/:?] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [!/:?] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [!/:?] 2022-05-15T17:03:41,930 | INFO | Karaf_Worker-6 | ServiceRequestEmailReceiver | 152 - com.alexanderpest.bugdata.msg-email-receiver - 2.0.2 | Message count = 554 karaf@root()> scheduler:list Name │ Schedule ──┼─── foo:emailReport -r j...@example.com & │ cron(0 0 17 * * ?) Paul Spencer