How can I order a job in Control-M using a message queue? - message

I am trying to find a way to order a Control-M job via a message from an external application. We are using Control-M v8. We are able to send messages to the queue, but we have been unsuccessful in receiving messages that perform some sort of action in Control-m.

Erick, look at the documentation for the Control-M Business Process Integration Suite Manual. This suite provides the capability that you are looking for.

We have application back-end in UNix and, we use Control-M in-built utilities to call jobs from unix. The jobs should be created in desktop, and should have been uploaded to control M database without any specific schedule. A utility called 'ctmorder' can be used to call these jobs as and when required.

Related

send email automatically monthly using asp .net mvc

I am developing a tuition fee management system using asp .net MVC for a university assignment. I am quite new with asp .net just learn it this April 2021. One of the requirements is that the system automatically sends an email every month to every user as a reminder about the outstanding balance. So how do I start to develop this requirement since I've been searching and only found tutorials email send manually and to one user only?
There is not built-in functionality in .NET that runs your code once a month, but there are several tools to do this. If you are using Azure, AWS or GCP (or any other cloud platform), you’d might consider a serverless Function to do this. These Functions can be triggered once a month by the cloud provider.
If you’re not hosting it in the cloud (or want to avoid any provider-specific features), you can use for instance Quartz (https://www.quartz-scheduler.net) or Hangfire (https://www.hangfire.io). There are many libraries available, all with their pros and cons. Hangfire for instance has a dashboard built-in to monitor and debug any issues, but this also costs some server resources and might be an overkill if you have a single job to run.
You should however take into account that communication with an SMTP server is quite time-consuming. Sending thousands of emails could therefore take a lot of time. Especially if you are using serverless Functions, this will become an issue due to the time-limits that apply for these Functions. Also when you run these as jobs in Quartz or Hangfire, you want to take into account this job might be aborted halfway. Therefore, you usually insert those mails into a queue (or database) and then have a second process to actually send these mails. Maybe even via a specialized email delivery service?

How can background tasks be executed from a library in an ASP.NET MVC 5 app

In my job we are building Web Apps that rely on a common Enterprise class. This class has a method that sends a request to our server every time the app_start or app_end event triggers so we can monitor the status remotely. But we are now requiring that at least once a day the web app reports its status, a bit like telemetry. I don't know how to accomplish this, so far I have found some options, but some have limitations:
Use hangfire. I don't like this since it requires to setup a Database or add more tables and install a new Nuget package on each project, but could be my last option.
Use a Windows Service that reads databases. This could be less work but it can't access the Web App web.config code
Use a Javascript tasks that sends an AJAX request. This requires to have an open web browser and is a big risk.
I'm looking for a server side approach that could allow to set to trigger an event or function at 1am.
I would got with Hangifire.
It is dead easy to setup and very reliable.
You don't need to setup the database, you might want to check memory storage:
https://github.com/perrich/Hangfire.MemoryStorage
Also check:
What is the equivalent to CRON jobs in ASP.NET? - C#
You can use FluentScheduler instead of Hangfire (it is more lightweight).
Instead of a Javascript task that sends an AJAX request you can use a WebJob or an Azure Function.

JIRA Integration with external systems

I'm working on a POC to automate downstream processes in external systems based on JIRA processes and have hit a wall with the API. It appears to have great integration for pulling data about tickets out of JIRA and for the ability to externally generate tickets into JIRA.
However I don't see how to trigger external calls as a part of my workflows. For example if a ticket should be prevented from being routed to the next stage of a workflow without accessing a database to ensure availability of inventory first how could I do that in JIRA?
Based on attributes in the JIRA ticket upon final completion of the workflow we'd like to send a JMS or REST message or possibly update an external database. Is this possible?
Thanks all in advance for the help!
If you want to do a "before" check, use a Validator on the Workflow Transition.
I strongly suggest deploying the (free) Script Runner add-on. There you can implement a ton of things. For example, you'll get a new validator option "Script Validator", where you can specify a Groovy script that decides if it lets through the transition or aborts it.

Email notification when using system monitoring

I am doing a Grails project. And here are some requirements about the system monitoring as below:
1. Email notify team when system goes down
2. Email notify team system log daily
3. Email notify team when app is deployed
So I don't know what to meet my requirements.
Could someone help me?
Use any monitoring software or service. I use New Relic, but there are plenty to choose from. If you only need ping, use a ping monitoring service. I use a free Google script I found on the Internet, but it has had some false alerts.
Use the Quartz plugin to send the log at a daily basis, or a cron job or similar.
Maybe use a shell script that does the employment and sends an email as well, or it might exist a Grails event for deployment.

How do I send durable messages with Grails?

Disclaimer: .Net guy trying to learn grails.
I've gotten used to building services with a distributed and durable messaging layer for inter-service communication with NServiceBus and MSMQ.
For anyone unfamiliar, NServiceBus provides messaging simply by referencing the assembly, doing some quick dependency injection.
Then, to work with it, I can send a message simply by doing something like bus.Send("location", messageObject) for a command, and bus.publish(messageObject) for a publish/subscribe situation. Then, all I have to do is create a service that "listens" for my messageObject type and I get the message.
It also provides something they call timeouts - which basically will trigger some event handler after x amount of time (useful for sending reminders or doing something on a schedule).
I'm looking for something similar. I found an article that suggest using grails itself as an ESB, but I don't see how grails can provide reliable and durable messaging. What I mean by that - if service A sends a message to service B, and service B is down, service A will retry later. A more involved example would be that of a saga - where the client starts a saga, service A does something, and service B does something, both report to the saga when they're done processing, and then the saga sends a message to service C so it can do its thing, knowing that both service A and B have done their job.
PS: if this question is too broad, please let me know how I can refine it. I'm at the very beginning of learning grails, so I'm not even sure where I need to start researching stuff.
EDIT: realized I forgot to add the article- http://jlorenzen.blogspot.com/2009/03/grails-create-app-esb
I'd probably use some AMQP queue that has a Grails plugin (like RabbitMQ).
While this wouldn't give you all the features of NServiceBus on MSMQ, you would get the durable messaging behavior you wanted. Things you'd give up / have to implement yourself include some of the retry logic, sagas, and message idempotence.

Resources