How to Evaluate Job Scheduling Software

On-Demand Webinar

How to Evaluate Job Scheduling Software

Windows, UNIX, Linux


When you're responsible for managing the IT business processes for your company, it's important to make sure you have an efficient, automated workflow across all of your dependent applications. What do you need to consider when deciding on an enterprise job scheduler?

This webinar discusses the different areas to consider when purchasing a job scheduler that will help you manage your systems and production jobs, inform you of any exceptions or errors, and schedule tasks based on whatever events are driving the schedule.

Join us as we review a checklist that you can use when making that purchase decision. Some of the areas that we cover are:

  • Why an enterprise scheduler?
  • Determining your scheduling requirements
  • Comparing schedulers based on installation, implementation, usability, and cost


Thank you for joining me today. My name is Pat Cameron and I am with Skybot Software. I think there are some familiar faces out there. But for those of you that I don't know, I've been with HelpSystems for a long time. I celebrated my 15th anniversary a couple of weeks ago, so I'm pretty excited about that. In a previous life, I was an operations manager at a hospital here in Minnesota where our corporate office is located. So I was a customer for many years before I joined HelpSystems. I worked with the Robot products for those of you that are familiar with the Robot product for many years, and moved over to work with the Skybot Scheduler that we have.

We're going to talk about Skybot today. First of all, we're going to just talk about enterprise schedulers in general and why would you want one and what would you do with it and what can it do for you. Then I'll do a little bit of a comparison. We have a good, better, best type of a compare going on here. If you have any questions during this session today, over on the right-hand side of your screen is the chat window. Down at the bottom, I think, next to the send button is a box. Type any of your questions in there. Happy to get them answered today. If I don't know the answer, I know a bunch of people that do so I'll make sure that we get your questions answered. So like I said, what we're going to be doing is looking at what is an enterprise scheduler and why would you want to have one and how to determine what your requirements are.

A lot of times, I think, the vendors try to set those requirements for you. Me being a vendor, I think that you should be the one setting those requirements. So we'll talk a little bit about that to help you with your decision-making. I've got comparisons for what are some of those schedulers that are out there and some of the ones that are okay to look at that might help you out, some that are better, and some of the best ones. Then what we'll do is we'll take a quick look at Skybot Scheduler. I'm going to do a demo and show you how Skybot works: how you can use it to manage the jobs in your data center.

Why Do You Need an Enterprise Scheduler?

So let's talk about enterprise scheduling. So some of you I know that are out there are using Robot as an enterprise scheduler. But you might have other platforms that you need to have an enterprise scheduler for. Actually, there are some people that moved away from the IBM i, and now we have something to offer those people as well.

So why would you need an enterprise scheduler? I'm sure you can give me a lot of good reasons. I think one of them is an SLA. Do you have service-level agreements that you need to meet? These are just a few of the reasons why you need an enterprise scheduler. Do you have to go in and run month-end or do you have to rerun month-end? Have you endured any audit nightmares where you had to go gather up a bunch of audit information and it's not easy to find? Automation, an automation of your production jobs provides you with an environment where there are less errors, faster run times, and documentation for your audit purposes.

Without an enterprise scheduler, it's difficult to avoid errors. We all are only human and I know that I've talked to customers over the years that say, "You know, it's just a couple of things that I have to run," or "It's only on month-end when I have to run things." But even besides the fact that you have to come in and do that, and you have to do it in a certain time and in a certain order, is the idea that it's easy to make errors especially if there isn't any type of a central scheduler.

A lot of times, jobs or tasks might run before their prerequisites are met or they might be running in the wrong order or maybe run up the wrong date parameter. There's always a need for processed documentation and exception reporting. A lot of times, that's difficult to pull together unless you've got some type of a centralized scheduler, a central repository for the documentation of your schedule. Regulators always require audits and exception reporting. Again, without a central repository, that information can be very difficult and time-consuming to come by.

Platform-Agnostic Job Scheduling

These are a few additional reasons why you would want an enterprise scheduler. A lot of businesses run multiple applications across multiple servers or VMs and even across multiple platforms. When deciding on the best application for a specific business need, it no longer makes any sense that the operating system or the hardware that it runs on should have much to say about that application. Your business unit needs to be able to choose the product that will work best for them and meet their requirement. So because of this, you should look at a central scheduler that sits on top of all of those platforms so that you're not tied to one.


You might have cross system dependencies. Dependencies can include all different types of events. Some of those are job completions. As soon as this job completes, then I want to run the second one. But I think what I found over the past few years, especially working with distributed systems, is that file creations or file changes: a lot of times, that's what driving your schedule. As soon as this file gets dropped from a vendor or from a client or a customer, I want to run this job process. As soon as somebody orders something from our website, I want to process that order immediately. So a lot of those job processes depend on the creation of those files.

So think about how you handle those types of dependencies today. I know that a lot of times, our customers are writing scripts to get around that because their scheduler can't handle it, so they have to spend a lot of development time managing those types of dependencies. A lot of those are handled manually. Unfortunately, that can cause delays and also can cause problems. So you might be using that expensive and rare developer's time to write those scripts to handle those resource dependencies and that's not a good use of their time either. That development time should be used for improving and maintaining your business applications, not your job scheduler.

Determining Business Requirements

So how do you determine what it is that you need in a job scheduler? Let's take a look at a couple of different areas of requirements. So to me, the first one and maybe one of the most important is business requirements. What is it that you need to schedule and how do you need to schedule those? You need to determine what your business needs are before you go out and look for some type of a proposal to come from your vendors.

So one of the first things you need to do, and this might be difficult, is to document the current process. What is it doing now? A lot of times, the system is documented. You certainly might have run sheets that you can pull information from. But no doubt, a lot of this information is inside somebody's head and what you want to do is you want to make sure that you get it out of that person's head and onto some type of a media that you can follow that flow. So when you're trying to decide on your business requirements, make sure that you include the people from production control, the people from the operations area, as well as your development staff to research those current processes. You're also going to need people from the business side: accountants.

Those guys know that process probably maybe better than you do and know what needs to run before this next step and what are the steps. So make sure that you get those schedules laid out in a format that can be understood by everyone that's involved. Like I said, this is probably the most painful part of the process for evaluating your job schedulers. But if you have good documentation and if you have it already, you're halfway there. To me, that's the most difficult part. Find out who knows what and get it out in the open. Make sure that you gather any run sheets that are used by any groups or any other business units.

Streamlining Current Processes

Also keep in mind that you may not want to actually replicate your current process. You probably want to be able to streamline it. But in order to do that, you're going to need to know where you are right now before you can figure out where you're going to be going in the next three months or six months or the next year. If you have any kind of service-level agreements, whether they're formal or informal, make sure that you get those documented as well. I worked at the hospital previously and we had informal service-level agreements with the other departments: the pharmacy, the emergency room, the lab. They expected those systems to be up and running 24/7.

Back in the olden days, that was not possible so we had to keep our downtime. We had a nightly downtime and we had to keep that as short as possible. We didn't have a formal SLA with those departments, but it was informal and we really did try to stick with it. So if you can get those SLAs documented, this is going to help you to start evaluating the type of notifications that you might need to receive from your enterprise scheduler to make sure that you're made aware of any of those exceptions such as late starts or errors or any other problems that you might having, any exceptions.

Reporting Requirements

Do you have any reporting requirements? Are you governed by HIPAA or PCI or SOX? What type of regulations are they? What type of reporting do you have because of that? Whatever job scheduler that you decide on should be able to provide that reporting for you without you having to spend a lot of time going and searching for that information. Then also, along with that, determine what your audit requirements are and make sure that whatever tool you have is able to provide you with that information. Again, you don't want to have to go hunting for audit information and go backwards. You want that information to be out in the open and easy to get your hands on and maybe automatically get it to your auditors so you can stay out of the process altogether—even better.

So determine your business requirements. What applications are you scheduling and how are you going to schedule them? Then also, look at your budget. This is also a very important requirement. What is your budget for scheduling? Now when you're calculating the cost of your current scheduling methods, you need to keep a couple of things in mind. Make sure to include things like the cost of overtime or the cost of downtime. Calculate the cost of downtime, and I'm sure that that may increase your budget. Have you had to rerun month-ends because there were errors? Have you had to restore a database because of errors in the order in which things were run? Keep those types of figures. Calculate the cost of some of those issues, and then the initial software and annual maintenance costs maybe won't look so bad.

Budget Requirements

Also as you're working with vendors, once you've got your budget set, make sure that you get all of the costs involved for that new enterprise job scheduler. Typically, the software cost, the upfront cost, and the annual maintenance are pretty easy to get, but make sure that you get any details on any required training or any consulting fees that are required. I know of some vendors that require consultants in order to help you do an update or to maintain the product. You'll want to make sure that you know what those upgrade fees are and what those consulting fees are upfront as well. So you just want to make sure that you get the true cost of that product when you're determining value for your new enterprise job scheduler.

Functional Requirements

So then, along with the business requirements and the budget requirements, we have some functional requirements that you'll want to take look at. Is it easy to use? What's the learning curve for this new scheduler? Are there any security requirements that you have and are these going to be met? What are the hardware requirements? What type of schedules are you going to need to be scheduling? You've got your weekly and monthly; you've got holidays and fiscal periods. A lot of times, those holidays and fiscal type jobs can be an exception. Make sure that the schedule handles that very well. What type of dependencies do you have for your schedules, and is the scheduler going to be able to handle those as well?

That's why that initial research into what it is that you're doing is going to make a big difference in how you can select the right enterprise job scheduler for your environment. How easy is it to install and how quickly can you get it up and running? Again, check to make sure that it doesn't require hours of consultant time. Can you go ahead and go it alone? Can you go ahead and set up a proof of concept, maybe with minimal help from your vendor. How sweet would that be? Then what are your audit requirements, again, for your IT processes? Determine what those are and make sure that they are documented well so that you can make sure that the product that you purchased will meet all of those needs.

So those are some of the things that you need to determine before you even start looking out in the market for what's available. Once you get out there, you'll see that there are all kinds of enterprise schedulers out on the market. We're going to take a look at three different groups of schedulers today.

Free Job Schedulers

So the first ones are the freebies. There are a number of job schedulers out there that are free. Cron is a good one from Linux that's included in the operating system. The Windows Task Scheduler if you've got Windows servers. We've got a lot of customers that came from the Windows Task Scheduler or cron. Many times, a business application that you buy, such as Lawson or SAP or any of those ERP packages that are out there, they include a scheduler. If that's all you're running is that application, that certainly might suffice for your needs. But we'll take a look at some of the pros and cons of some of those application schedulers. Then we'll also just review some of the enterprise scheduler options that you have out there. Again, some of the things to look for and some of those things to be aware of for your third-party job schedulers.

So here's our kind of good or okay group of job scheduling and some of the pros and cons that go along with those. So cron is a good example. It's a simple time-based, free scheduler. Just get cron running on your Linux box and you can schedule jobs to run every day at a certain time, every hour, every week. So if that's all you have are those time-based schedules and they don't have any dependencies, more power to you. That is a great way to be able to run. The other thing that you want to make sure of depends on the number of servers that you've got. So if you've got one or two servers and you're just running cron, that's just great. It might work for you for those time-based schedules. But if you do have any kinds of dependencies, then you're going to have to do some scripting to take care of those.

Again, with cron, one of the pros is there's really no cost to the purchase. But I think where your cost will come in is because there isn't any support. You've got to figure it out for yourself. Google can help with that, but sometimes it's not very proactive. Also, there are a lot of people and a lot of customers that I've talked to that have moved to enterprise schedulers that have come from homegrown schedulers. Some of these homegrown schedulers are very complex and they spent a lot of time and energy working on them. What has happened to the people that I know that have come over to Skybot is that they've outgrown it, that their schedules have gotten more complex.

They've gotten a lot of growth and so they have a lot more servers. Maybe they've acquired some other systems. That's a good problem to have, but you don't want to be maintaining that schedule. Again, you're paying your developers and using that valuable time working on your schedule instead of working on your production applications. The other thing that happens is the guy that wrote it. He retired, and now what? How are we going to maintain that scheduler? We've run into that a few times, too. So make sure that if you're using a free scheduler such as cron or the Windows Task Scheduler or a homegrown scheduler, check on it for auditing.

Is it auditing any changes? What kind of reporting do you have? Do you have the ability to forecast? With things like the task scheduler in cron, it's difficult to forecast what's going to run tomorrow, what's going to run next week, and impossible to forecast across multiple servers. So again, great for simple jobs with a small number of servers.

Application Schedulers

Let's take a look at some of the solutions that might be a little bit better. These are typically schedulers that come along with an application, say an ERP package that you've purchased. Most of them do include some type of a scheduler. They're pretty simple to install. They go along with the installation of your software. But typically, they're not as robust as a third-party or a standalone scheduler. The people that wrote those schedulers, they're experts in their application. They are ERP experts; they're not scheduling experts. So many times, you'll find that it's not as robust.

Now it might work really well for that specific application. But if you're doing things in addition to that application such as file movement running multiple applications, you're not going to have any of that cross-system reactivity, cross-application reactivity. That's just not going to be available. The price is usually right for those because it's included in the application itself.

I was at a trade show last week for Infor, actually, down in New Orleans, which was kind of fun. A couple of things came up when I was talking to customers there or prospective customers that one of the applications that they use, they use it to run their payroll but they didn't have a way to schedule a biweekly job and so they had to write some work arounds in order to run their payrolls every other week.

The other thing that I found out about that application is that it will submit a task or a job to run, and then it will just complete. So it doesn't sit and wait until that task is completed, so it makes it very difficult for them to schedule any kind of dependencies or any kind of reactive jobs. Then some of them I think have issues with month-end and work and non-work working days, so running something on the last workday of the month is not as easy to do with one of those application type schedulers. Again, you might have to do some scripting for that.

So what you'll want to do is you'll want to go back to those functional and business requirements and make sure that you can tick all the boxes with the scheduler that comes with your business application. If you can, more power to you. That's just great. If that works out for you, that's fabulous. But if you do have some requirements over and above that, then you're probably going to want to go look at some third-party enterprise job schedulers

Enterprise Job Schedulers

So enterprise job schedulers. There are lots of them out there. They've been out there for many years. A lot of them were ported over from the mainframe, some of those big guys that have been out there forever. So typically, you can cover all platforms with them. You can do dependency scheduling, so that's great. Most of them have some type of built-in security. Usually, they have some type of event-driven scheduling. So you get a lot of those requirements that you have can be filled by probably just about any of the enterprise schedulers that are out there.

Some of the things that you want to look for is some of those are very expensive and they have a lot of features that you might not need, so the way that you have to buy them is they might not be modular. You might have to buy all or none and then you'll have a bunch of features and a bunch of overhead that really isn't useful to you, so keep that in mind. Stick to your requirements. Some of them are very difficult to learn and they're very difficult to implement. There are some schedulers out there where they do require you to have a lot of consultants running around helping you implement and helping you update. So you want to make sure that you can take a look at something that's easier.

I've said this to a customer that I've worked with for years whether it was in Robot or Skybot, that scheduling isn't rocket science; it's scheduling. So if you are logical and you are familiar with your schedule, it shouldn't be a big giant project.

The other thing to look at is some of the competition that's out there is that the support is not very responsive. I heard that last week that because some of the acquisitions that have had happened, that there isn't a lot of responsiveness to the individual packages that people are running, so test out your support. When you're trialing or creating your POC, test out the support as well as the product. Again, go back to your business and functional requirements to determine what's the best for you.

Looking at Skybot Scheduler

So what we're going to do is we're going to look at Skybot; because of course, we think Skybot is the best of the best. So we give you enterprise scheduling across all your different platforms. It's a browser interface so you don't have to install anything on your workstation. There's no client involved and you can monitor it from a tablet. We have a nice web interface that you can use. We've got event-driven scheduling and all the good stuff that is in all of the schedulers that are out there. In addition, we offer our great support. When you call for support or text us or email or get on our chat, you will get directly to our second level support person and get those questions answered.

Our support is the best in the business. I was talking with Keith this morning when I was doing it. Both of us were customers before we came to HelpSystems and both of us stayed with HelpSystems because of the support that we got from the staff. I think you'll also find that Skybot is affordable, that we do have some modules so you don't have to buy more than you need when you're using Skybot as your enterprise scheduler.

Just a quick overview of how Skybot is put together. It's a hub and spoke type of an architecture. So we have a central host and we use a PostgreSQL database as our back end. We also include a HTTP server because the access is through a browser. We run as a service in the background or a daemon on Linux so you can install it on Linux or AIX or Windows. So your central server sits there and that's where you store all the rules and all the history, etc. Then you install an agent on each of the VMs or servers that you want to be able to schedule jobs on and those agents communicate back to the central server to find out if it's time to run something, to find out if the dependency has been met, etc.

So this communication which is encrypted goes two ways. So you can do things like schedule this suite of jobs that's running on one of my Windows servers. As soon as that completes, I'm going to trigger an ETL process that runs over on AIX. As soon as that completes, I'm going to do a file transfer. I'll pull a file from this process. We do have a built-in file transfer function that you can use. That will move that file maybe over to the IFS on my IBM i. So it doesn't matter where those processes are running. It's very simple and easy to set up those dependencies across all different applications, across all different servers.

So it is very easy to use. I've had customers come back and say, "It took me five minutes to get this up and running and get some test jobs going," so it is very easy to install and get up and running. Drop-down menus are nice. We'll go online and take a look at this. I think the thing that Skybot brings to our customers is this central console. To me, this is the biggest advantage. I don't have to log in to ten different servers to see what’s scheduled to run. I can just log in to my Skybot server. I can build a flowchart that's going to show me all the different jobs that I have running and all the different servers that they're running on, so I've got one place where I can view those jobs. As they're running, I can view the status of those jobs as well. You can see job history across all of your different servers from one place, and again create those flowcharts.

Skybot's Application Integrations

We do have integration into some specific applications, SAP. I just got off a demo with a customer that's looking at SAP right now, looking at Skybot and SAP. Microsoft SQL Server, Informatica. That customer is already using Skybot with Informatica, now they're adding SAP. I've got a couple customers that do that. I'm not really, really familiar with Informatica. But to me, it consolidates the information from your databases. I think in these days of big data, that Informatica probably is a great help with that. Then SAP is their ERP system, so they're feeding information to and from SAP to Informatica, and then Oracle E-Business Suite as well.

For those of you that are running Robot, we do have an interface to trigger a Robot job as well either way. So we try to look at Skybot as the hub of your operations area. In addition to the application integration that we have here, Skybot can run any command or any operating system command or any script. So anything that can run from a command line, Skybot can run. We also have a web services interface. So if you have web services requests that you want to be able to schedule, go out and get currency conversions, go out and get stock quote prices. We can do that for your web services applications as well so you can have a combination of cloud services and local services running. Skybot just puts those all into one big job stream if indeed you want to do that.

Other Key Features

So this is just an example of dependency scheduling that we can do. We can monitor for a new file to arrive on a server. As soon as that file gets created and is finished downloading or being created, we can trigger a job to FTP that file. Maybe move it to another server and then immediately trigger a script that will react to that FTP job. What customers have found is that it compresses the amount of time that it takes to run their job processes because you don't have to leave that time gap in there hoping that that previous step is done. You can link them all together and your jobs will run just one after another very quickly and seamlessly.

We have notification built in. This is for SLAs. You can monitor for late starts and overruns, etc. If there are failures, you can certainly immediately let whoever is providing support for that product know. Also, send along a job log. We'll capture standard out and standard error and you can send those along. We can also use our notification to open up a ticket. So if you do have a help desk ticketing software that will accept either an SNMP trap or an email formatted in how you need to see it, we can open tickets for you automatically. Then we can also notify you on event statuses. So there are a number of places within the product where we can send out notifications.

We have role-based security built into the product. I also like to point out here too that we interface with Active Directory or an LDAP server so you don't have create a bunch of separate users for Skybot. Anybody that's going to be setting up jobs or monitoring jobs, they can use their network login and then you can decide based on the role what type of access they have to different objects on the system. So some people might have display only, others might have execute, whereas other people might be able to actually make changes so you can be very specific in the type of access that users have to the Skybot product.

Skybot Scheduler Demo

So I'm going to pop online here and we're going to take a quick look at Skybot. I'll show you the user interface. I've got an event-driven schedule. I'll show you how that works, some notification. I'll show you a few of those options, and then some of the security auditing and reporting functions. I've got a report, the Good Morning report. I ran it just a minute ago. For those of you that are familiar with the Robot Good Morning Report, we also have Good Morning in the Skybot product. So now that I slipped over, if you want to send me a message, if you have any questions, if you put your cursor up at the top of the screen, WebEx will drop down a screen and you can just click on that chat icon. Put that up on your screen. Then if you do have any questions, you can send that to me right from here.

So this is the Skybot interface and this is our dashboard, so we will keep track of all the jobs that are running here. We've got terminated jobs, agent events, etc. Any of these charts are clickable. So if I want to go ahead and see the jobs that terminated today, I can just click on that chart and then Skybot will take me into the history. So here we've got the job names, the agent that they're running on. So you can see these are all different servers, that these are jobs that they're running on. This is the status. So I've got a filter on here for just the failed jobs and also just today's jobs. There are other time ranges that you can look at if you want to. You can also auto refresh this screen every five minutes or every one minute if you want to. But this is an automatic filter from the dashboard. You can see the date and the time that the job started and ended and report on that information as well.

Skybot's Calendar Options

So that's our dashboard, drop down menus for history. So you can go in and look at history. Here's where you can set up individual jobs. Maybe they're time-based, maybe they have dependencies, job suites. Here are a number of different objects that you can create: agent environments and calendars. Calendars work just like they do in Robot which is for exceptions. So if you've got holidays and you don't want jobs to run, you can put them on a calendar. You can create multiple calendars, fiscal calendars if you run your accounting jobs on maybe four four five periods. You can create fiscal calendars as well, notification lists. An FTP system so I can define an FTP server to Skybot and then you can use Skybot to push or pull files from there. I've got an example of that. Here's where you would define your web servers for your web services applications, and then down here are all of our third-party integrations, SAP, etc.

We have some diagnostics built in. We have a number of different reports. All of our reports can also be scheduled using commands so you don't have to go in here and click on them. You can schedule them so that they're in your email and your inbox every morning. Then here's where all of our admin options are. So let's go and take a look at a job stream that I've got. I'll just show you some of the options. So I use this guy just to show you that I can have jobs that are running on different servers and they can all be dependent on one another. So this is a Microsoft SQL job that runs and it is dependent on this new file that gets created. So I have this dependency set up. I'm just going to right click from here. These are all the options that I've got for editing a job.

I can run a job from here, put it on hold, look at history, etc. But to set up the prerequisites for this job is under this tab right here. So what I'm saying here is this demo SQL agent job will run once this new file event occurs. Now I can have multiple prerequisites as well. Maybe I've got another job. Let's see, maybe an accounting job. I can add that to the list. For those of you that have Robot Schedule, I can have a Robot job trigger that as well.

This is my Robot system. These are the jobs that are over on that system, and I can react to a completion of one of those as well. I can do kind of an and/or so you can group them together. So lots of flexibility and what exactly is it that I'm reacting to and when am I going to react. Again, you don't need to monitor for that. You can set that up and run it up automatically.

I'll go in and just show you a little bit about the job setup and show you a couple of options for scheduling. So here's my job name, here's the agent or the server that it's running on. Then this job runs every day at 8:00. It has the prerequisite and it runs. I can add another schedule here. Maybe if I've got a weekly schedule, let's say here's one that's pretty common, I want to run this job on the last Friday of the month. Here again is where it would use the calendar to go see when that last Friday was.

So those are day-of-the-week-type schedules. I've got month-end or day of period-type schedule. I want to run this on the 15th of the month so I just set it up that way. It will always tell me down here as I'm building the schedule when that job is going to run. If I need to run something on the last day of the month, schedule it on Day 1 but start counting backwards. If I want it to run on the last working day, I just select here. Again, it will look into that calendar to see if it's a holiday or not and if that job should run and I can do the same thing for quarter-end, half year, and year-end-type jobs. So very easy to set up time-based schedules for whatever time that you want something to run.

Here we have an interval. So let's say I need this to run every 30 minutes. Now this is something that one of the other schedulers couldn't do as well. I need this to run every 30 minutes but I don't want it to start until 8:00 in the morning. I want it to quit after the 5:00 instance of it, so I can set that interval job up to just start. It doesn't have to run 24/7 and I don't have to do anything special in order to get it to run there. Then of course, we have a lot of different reactive-type schedules. So we've been doing scheduling for so many years that I have not found a schedule that we couldn't support yet.

Building Commands

So you build your job, build the schedule. Here are the commands that this job is running. Here we have a drop-down list. So depending on all of the connectors that you have, we have Informatica Cloud, Informatica Workflow, Oracle Concurrent Request from E-Business Suites, SAP, SQL, a web service request, and then a desktop application. If it needs an active desktop, you can schedule a Windows job here as well. So I can build the commands. So instead of having a big long bat file or big script that runs ten steps, I can put those individual steps into one Skybot job if I want to. Then if I do get an error and one of these fails, I've got a good restart point. So if this second step would fail, when I go to restart, I could restart it at the second step. I wouldn't have to run this first step again.

This first step happens to be an FTP just to show you, you can push or pull from an FTP server. If you want to replace the target, you want to leave the source, etc. I can use variables in any of my parameters where they're allowed on that command line. Different types of notification that we have built into the product: here are my job monitors. So what I'm doing here is I'm setting a maximum duration on that job. If it runs longer than 30 minutes, I'm going to let the help desk know. I don't want them to be surprised when they come in in the morning and see that job is still running. Also, if I've got an SLA and this job needs to be started by a certain time, I can monitor for that as well.

Job Monitoring

So I can monitor for delays or gaps in the schedule and then I can also send out a notification on a status. So these are the different statuses a job gets when it runs. We do have a queuing function so every agent has a queue. You can limit the number of active jobs out of that queue. So get submitted, maybe skipped based on some condition you've set. Now what we're doing here is when this job completes, if it's a normal completion, we're sending an email to this customer list. If it fails, we're letting the help desk know and we're sending the job log along with it as well. So hopefully, you can set your schedule up and forget it, and then it will call you if there's a problem.

The file watcher, let me just show you quickly. So this guy just sits and monitors for a file to get created and so it can run the other jobs. So this is the agent or the server that it's on. This one just wakes up every five seconds. What I'm watching for is a new file to get added that starts with sale. Now in this PC files directory, it doesn't matter if there's a hundred files out there. This is only going to trigger when a new file comes in. So what that looks like in history and we keep history on that and report on it if you need to. Here's the file every day. So this is the one from this morning, yesterday, the day before, and it will show you the time that the file was created. Sometimes it's early in the morning, sometimes it's at night. So you'll keep history on that as well.

So it gives you a good view of what's happening on your system and what is causing what to run. When I was in operations, that's the toughest thing I think to know. It's what are those dependencies and to have a good way to document that. It's going to be really helpful. Again, these are all different servers. So this is a Windows server. It triggers a job over on my laptop actually. It also triggers a job over on a Linux server and then SAP. So again, it doesn't matter. Then this one down on IBM i. It doesn't really matter what the platform is.

A couple other options to be aware of, we've got an activity monitor. What this does is this shows you what's happening right now. So this line is the time that it is and this refreshes every five minutes. You can customize what you want to see on this screen. Most of the screens have a preference button, and so this allows you to customize it by user. So when I sign on, that's what I'm going to see.

Job History

So the Skybot will always keep track of the next 24 hours of jobs that are scheduled. It will calculate the start time and the end time based on history. You can see here, we're looking at just 10 of 466. These jobs are scheduled to run in the next few minutes at 4:00. Some of them are held so that's a note to me, an indication that they might not run because they're on hold. This is my friend, Keith, over in the U.K., who's either on the train going home or maybe already having late dinner, I suppose. His agent is down so he's got a job that's queued up. There waiting for it to come back up in the morning. Then these are the jobs that are active and this graph will show you when they started, and then based on history, when they complete.

Role-Based Security

As far as security, we do have role-based security. Like I said, it will interface with Active Directory. So here's a help desk role that I've got and here's our link to the LDAP server. This person has changed authority to notification lists but they can only view history and they're excluded from some of the options, users and roles for one thing. Here you can see they can run a bunch of reports but they can't create any objects. Then you can get right down to the individual job level. So for example, for jobs overall, they have view access for any new jobs that get created, but they do have execute to a few of these jobs so they can restart it or run it or hold it. So you can be very specific by group who has what type of access.

The Good Morning Report

Then the last thing I want to show you is the Good Morning Report. I'll go ahead and click on it. I just ran one. So you can determine how far back you want to go, days or hours, or you can put a specific time range in there. You can email the report to a list of people or to the current user or you could just archive it in a directory somewhere. I'll go ahead and generate that report. Now it will take me into this report screen, so these are all my reports. I did this just before we started so I'm going to bring that guy up. So I love the Good Morning reports on all of our products. But the other thing about them is if there's a lot of information on them, it's not a very good morning because what we want to send you is the exceptions. So if there are potential problems, we want you to be made aware early.

So the scheduler is up and running. That's a good thing. We do have seventeen agents that are offline. In the real world, that might be a problem; in our test world, it is not. We do have one agent queued that's on hold so no jobs will run out of there. We've got 252 jobs that were normal, 47 that were abnormal, some that were skipped, and then here are late starts and our overruns. So this first page will give you a summary of where your problems might be occurring. Then further into the report, we're going to give you the details. So these are all my abnormal jobs. It will tell you the run number, the job name, the date and the time, and then what the problem is. This one is really having some issues. I just noticed that earlier today. I'm going to have to fix that.

But we will get the details for all of those abnormal job runs, and then we'll get the details on the job monitors, the overruns and the late starts. So it will show you the job name, the agent that they're running on, and the time that it happened, and then what did we do about it. Most of them, we'll just send an email. I didn't have any missed jobs and I do have all these agents offline, and what's up with that? But this is a test system as well as a demo system.

So we want you to be able to, like I said, manage your systems by their exceptions. But if there are exceptions or problems, we want you to be made aware of them. We want you to be able to manage your systems from a Central Console so you don't have to log into a whole bunch of different servers. So hopefully, Skybot will be able to meet all of those business requirements that you have for enterprise scheduling.

Questions and Conclusion

Now Kelly asked me a question a little bit ago. Am I aware of anyone using Skybot with UniData? I don't know. I can do a little research on it, but I don't know of that one specifically, Kelly. But if UniData has any kind of a command line interface, we can probably run those jobs. But we'd have to do a little test and it would be easy enough to set up a test and see. I don't know any applications that we do not work with specifically. Again, anything that has some type of a command line interface or if it's a web services application, typically we've been able to run those jobs.

Any other questions from anyone? Well, that is my information for today. Hopefully, you got some good information on what you need to do in order to evaluate job schedulers. We'd love to help you with an evaluation, if you're interested. Skybot Scheduler, again, it's an enterprise-level scheduler. I will put it up against any of the big boys that are out there that have been around for a long time. Skybot was not ported over from any of our other schedulers. It was completely written here by our developers, but we just took all that good logic that we've known for 30 years and put it into Skybot. So thank you for joining me today. I appreciate you all taking the time to take a look at Skybot.

If you have any questions, you're certainly welcome to email me or you can check out our website. We do have a live chat out there that's manned during business hours, so happy to answer any questions that you have. So if there isn't anything else, that is what I have for today. I appreciate you joining me. Hopefully, we'll see you next time. Have a great day.