Copy link to clipboard
Copied
So about a month and a half ago we switched from CF9 to CF10, and we were excited about what new features we would find in the revamped Scheduled Tasks section. As it turns out, our optimism and faith was severely misplaced. In every single aspect of the scheduler product, Adobe fails to deliver a usable product, and in most cases takes severe steps backward.
Did you copy over your old neo-cron file so that you wouldn't have to set up 50+ tasks by hand?
Well lucky for you that all the tasks will now be in CAPS for some reason, and every one of them is labeled as "paused" even though they are currently running.
Did you like how nicely CF9 grouped the tasks by type, sorting hourly, daily, and weekly tasks into groups?
For your convenience, that's now gone.
Would you like to change the name of your task?
Sorry! Error Message: It is unable to store the job because one already exists with that designation.
Would you like to change what URL is called on the task?
Sorry! Error Message: It is unable to store the job because one already exists with that designation.
Would you like to start up a finished scheduled task again on a different date?
Well we can do that, but we refuse to give you any indication that it's actually been scheduled.
Would you like to create a new task?
We'll do that for you, but we won't show you the task in the overview. You'll just have to wait until the first time it runs and then it will magically appear.
Would you like to delete a task?
Sorry! Unhandled Error: The following task could not be found.
Seriously.
This is the most unusable piece of garbage I can ever recall seeing. I have been using ColdFusion since version 4.0 and I have never been this mad at it. What is the point of out-sourcing your scheduler to Quartz if it doesn't work?
Copy link to clipboard
Copied
Smurf, before addressing your issue, I want to point out first that it’s never been recommended to copy neo xml files from one instance of CF to another, let alone from one version of CF to another. I realize you may feel that you or others have “done it for years without problem”. It still was always risky, and it’s all the more so with scheduled tasks, because CF10’s support of them is in fact really quite different, due to the quartz-based implementation that you refer to, and the xml files from 9 just are not the same as what CF10 would build.
Now, should Adobe have warned you of that? Well, I’d argue not, because again bringing forward neo xml files was not something that was ever really a supported approach to migration. They would instead propose using the ColdFusion Archive (CAR) mechanism. Of course, that’s only offered in CF Enterprise, Developer, or Trial editions, not in CF Standard, which is its own debatable and lamentable topic, for another day.
Even if one felt they had no choice (especially lacking the CAR mechanism) but to try to copy neo xml files between editions, an argument could be made that one should certainly be prepared for possible errors (and so should keep a copy of the original xml file from the new release, in case they may need to revert to it.)
Sorry that this may sound a bit like scolding. I don’t mean that. I’m just offering what I hope is helpful practical perspective on the annoyance you experienced.
And really, it then leads one to wonder if all the rest of the problems you hit are related to that issue? Can you clarify: did you experience all your other issues (from changing the name, down to deleting a task) on a CF10 installation where you had NOT tried to do that import? It would be helpful to hear. I mean, I have not heard others complaining of this issue, and it seems reasonable that if it was all wholly busted as you propose, that certainly others should have reported it by now.
Again, I hear your frustration, and I risk only raising it and your ire. Please hear me right: I appreciate your dilemma. I’m just trying to help you and also future readers to know if the problems you’re hitting are really all about CF10 simply sucking at scheduled tasks, as you assert (if I could word it differently). I am inclined to think there’s another problem at issue for you.
Finally, and perhaps most important: are you in fact referring to a CF10 with all updates applied? I realize it may be seem obvious that you have. But even if you’d say yes, is there any chance that you have more than one instance that you’ve implemented within CF10 (available if you’re running the Enterprise, Trial, or Developer edition)? And if so, might you perhaps have updated one instance but not the one against which your code is running? Here’s a quick way you could test: do a CFDUMP of the server scope. It will report the version, and as of CF10, that now includes an indication of the update level, as the 3rd number, so that 10,0,11 means it’s CF10 running its update 11.
Hope that’s helpful. If I’ve still only served to raise your annoyance, please work with me to try to forgive it, and help correct where I may have failed you. I really am just trying to help, you and other readers.
/charlie
Copy link to clipboard
Copied
It is interesting to me that you say it is not recommended to copy the neo-*.xml files from one installation to another. We've been doing that regularly since MX and we've never encountered a problem, at least not until this scheduler issue perhaps. In fact, it seems more than a little surprising to me that you would actively suggest to NOT do it. Copying those configuration files seems like the safest way to ensure that your server configuration remains standard across installs, and all test machines in your environment.
And I'm still not sure I'm sold on the idea that everything will start working again if I just roll back my scheduler to a blank file. For instance, why would an XML config file disrupt the scheduler's ability to delete a task?
Honestly, most of the errors lead me to believe that Adobe is storing the scheduler data by task name, instead of some independent UUID. Every error I get says something like "I can't create that task because one with that name already exists" or the like. That just seems like really crappy programming, not a config file problem.
And yes, my server is up to date.
I honestly don't know why it would only be happening to me, but after all the problems we've had with CF10, I'm no longer willing to lay the blame at my door. Once upon a time I would have given Adobe the benefit of the doubt, but they've pretty much proved they don't deserve my faith any more.
- How is it exactly that half the stuff they fixed in update 11 wasn't in update 1 or 2? How did stuff like this make it over a year before it got fixed?
- Why is it that the 404 error handler (hanging processes) issue still isn't fixed, even after applying the update and redoing the connectors? Why is it that they have yet to acknowledge that the error still persists?
- How did that web socket security issue ever make it through testing? I mean, seriously? In a version that was touting its added security benefits? You are opening up a new way to access components and no one thought to check that you could only run the ones you were supposed to be able to? I pretty much can't trust any security claims CF makes from this point on if this is their level of attention to detail.
--------------
So thank you Charlie for your kind response. I suppose at this point I have no recourse left but to re-build the scheduler from scratch. I guess I'll try that.
Copy link to clipboard
Copied
Well, to be clear, I anticipated that (“I realize you may feel that you or others have “done it for years without problem”). ![]()
As for your surprise that I would even suggest against it, I thought I was also clear: Adobe would say that you should use the CAR mechanism. But granted, those on Standard couldn’t, so they may have resorted to copying the xml files. That doesn’t make it right or recommended.
And yes, I would recommend against it, for three reasons:
- again, in copying between versions, the xml for one may not all apply for another
- and in wiping over what was in the one system with the file from the other, you may either lose values from the new one, or lose changes to the xml placed there by the new version
- finally, even in copying between two CF instances of the same version, there could still be values in the old file that were specific to that old instance, which may not be appropriate on the new
So could one be really careful in doing such a “manual migration”? Sure. But it’s not even easy to do a compare of the files, perhaps to surgically merge in values from one instance into the other, because as you may have noticed, the neo xml files are in wddx format, which means they are both minified and have no fixed order, so most compare tools can’t really compare them effectively.
As for your observation that it seemed the best way to ensure consistency, well, again, you may have been able to do it between systems of the same version, if you confirmed there was nothing instance-specific (or you tended to it). I’m just saying that no, it was not a generically supported notion that one should do that, even if people did do it. But we’ll call that just my opinion. You and others may disagree.
Moving on to how to proceed, you say you’re “not sure sold on the idea that everything will start working again if I just roll back”.
Well, I had actually asked first, “Can you clarify: did you experience all your other issues (from changing the name, down to deleting a task) on a CF10 installation where you had NOT tried to do that import? It would be helpful to hear”.
But if the answer is no, then back to your wondering about rolling back, I would ask, why not try it? If it works, you can then put a single task in manually, and compare how the xml file differs, to see what was amiss. Again, I would not be surprised that the scheduling xml is just very different in CF10 than before. And here’s something to consider: even if you are not using the “new” features in your “old” scheduled tasks, perhaps there’s no difference in the xml related to any one task, but there may be one or a few new xml elements that needed to be there which CF10 would have put there, but you wiped out in your copy. It’s worth checking. Then you’ll know how big a deal it may be.
And you may then also answer your question about whether it’s a difference about how they are keying the tasks within the file? Bottom line: why bang your head on this wall?
I think you may just have to accept that the file is different and you can’t just drop an old one in its place. Figure out the differences, and press forward. ![]()
Hope this has been helpful in encouraging you toward this. I’m sure if you offer a reply with your findings, you may help others who find this discussion in the future.
To your last points, well, I can’t restore your faith in Adobe. I’ll only say I don’t share your dismay and concerns. As for your last questions:
- as for why “half the stuff they fixed in update 11 wasn't in update 1 or 2?”, well, I don’t know about EVERY fix in update 11, but certainly some wouldn’t have been fixed in update 1 or 2 because a) they may not have known the problem existed, b) they may not have known how to solve it, c) they may not have been able to solve something because of something related that was not fixed until some later fix (5, 6, or 7, for instance). I’m just guessing on all that. And I realize it may ring hollow if you have lost faith. I’m just offering a different perspective.
- as for your assertion that “the 404 error handler (hanging processes) issue still isn't fixed, even after applying the update and redoing the connectors”, well, it is fixed for some people after that. As for any still suffering, you ask why Adobe doesn’t acknowledge it. Are you positive that they know of it? Are you referring to clarifications someone has offered in a bug report (after the update came out)? Or a comment in the forum (which of course there’s no guarantee Adobe will read)? Again, not trying to be argumentative. Just trying to advance your cause.
I’ll add this also: I help people solve problems with CF and IIS every day, and I have seen plenty of instances where the person’s problem was because they were manually tweaking things (in desperation, perhaps based on tweets/blog entries/forum threads they’d read) and they’ve just made the lumpy bed they’re sleeping in—and blaming Adobe for. Tell you what: if you know any one person with the specific problem, I’ll offer an hour to look into it with them, to see if it’s a problem with IIS, connector, or CF configuration. If not, and it seems then clearly that it must be some real CF bug, I won’t charge for that hour.
As for your last point, I’ll only agree with you that it’s a shame that they didn’t think to test for this. But hey, I can’t cast the first stone. I’ve surely forgotten to test something which I should have (whether in defensively programming an app, or setting up some new security protection on a server). They’re human, they made a mistake. It was found, and corrected really quite quickly. I guess I choose to look at the glad half full, but I know others do see many of these things differently. I just keep trying to help, and offer a more positive perspective when I can and it seems warranted.
Hope something there’s helpful.
/charlie
Copy link to clipboard
Copied
Charlie
Jumping in here - the problem with CAR as a way to deploy vs copying neo-*.xml files is that you can't automate it. (that I know of ?)
Copy link to clipboard
Copied
@Pat, nope, the CAR file mechanism can’t be automated that I know of. Again, I’m not saying it’s the perfect solution. I’m just saying it’s the only supported option.
But I did find something that may interest some: when one does an installation of CF, and it detects that there is an old installation, it has a built-in migration option that reads the old instance’s neo*.xml files.
Well, unbeknownst to most (I would guess), CF DOES offer a way to do that after the fact (post installation). It would be a way to get the CF Admin migration feature (even in Standard) to read in files from an earlier instance (or indeed from an earlier instance on another server, which it wouldn’t have been able to do on initial installation).
The trick is just to put the neo*.xml files (from the old instance) in a certain place and change a certain xml file (on the new instance) to point to it, then run the admin. This is in fact documented within the CF9 (and CF10) docs:
http://help.adobe.com/en_US/ColdFusion/10.0/Installing/WSe9cbe5cf462523a07f098214121c918ef8c-8000.html
http://help.adobe.com/en_US/ColdFusion/9.0/Installing/WSe9cbe5cf462523a07f098214121c918ef8c-8000.html
I will admit I’ve not done it myself yet, but I want to point it out here for all those interested in any sort of automation of the import of settings from one instance to another (when you don’t have Enterprise and its CAR file mechanism).
Hope that’ s helpful.
/charlie
Copy link to clipboard
Copied
I thought I would give everyone an update in the hopes that it helps others with the same issue.
I eventually went back and started with a fresh version of neo-cron.xml and set up all my scheduled tasks again by hand. This largely alleviated the problem, although not completely. In the process of doing this, I learned a couple of things through trial and error.
1. Most important, do NOT put any special characters into the name of your task. And here I mean things like ampersand, slash, or parens. & / ( ) All of these characters, and I'm certain several others, really screw with the scheduler in weird ways. If I put those in a task name, the Last Run, Next Run, and Remaining columns didn't report the correct data. I also couldn't pause the task or resume it. Just got constant errors.
2. If you try to remain a task with the above special characters, it doesn't actually go away. One of these was a task that ran every 5 minutes. When I tried to rename it, it appeared as though things worked, but in 5 minutes, the original name came back in the task overview and I now had two copies of it running. I can delete the second task, but it just appears again in 5 minutes. The only way to actually get rid of the task, is to delete it and then restart the CF service in order to get it to re-load the updated neo-cron.xml file.
So looking back on the issue, I'm guessing part of it was trying to dump a CF9 version of the file into place. But I think a larger part of my problem was having task names with parens in them (which was all of them). I'm not sure whose fault this is, but its an ongoing issue in the scheduler that I'm simply working around at the moment.
Copy link to clipboard
Copied
I'd agree with ColdFusion Smurf, we've had no end with the scheduler in CF10. It throws very strange errors and sometimes will not allow us to rename a task or create a new one. Also today, it ran all our tasks at once!
Is there a replacement for the CFScheduler that one can use?
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more