Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Task Runs from Command Prompt but not Task Scheduler

Posted on 2013-12-24
17
Medium Priority
?
705 Views
Last Modified: 2014-02-01
We have a simple task that reads records from a Pervasive database using ODBC and writes them to a SQL database.  The task can be run from a command line but NOT from the task scheduler which throws all kinds of  ODBC connection errors (HandleError for every table).  Security, logins, etc. are all identical for the logged in user and the task.
0
Comment
Question by:branuda
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 7
  • 4
  • 3
  • +3
17 Comments
 
LVL 23

Expert Comment

by:Patrick Bogers
ID: 39738083
What kind of job is it? batch? cmd or powershell?
0
 
LVL 71

Expert Comment

by:Qlemo
ID: 39738085
Does the task use ODBC DSNs? If so, they might be defined for the user instead of the system.
0
 

Author Comment

by:branuda
ID: 39738111
cmd
0
Optimum High-Definition Video Viewing and Control

The ATEN VM0404HA 4x4 4K HDMI Matrix Switch supports 4K resolutions of UHD (3840 x 2160) and DCI (4096 x 2160) with refresh rates of 30 Hz (4:4:4) and 60 Hz (4:2:0). It is ideal for applications where the routing of 4K digital signals is required.

 

Author Comment

by:branuda
ID: 39738114
There was a user DSN.  Now there is a System one but same results either way.
0
 
LVL 71

Expert Comment

by:Qlemo
ID: 39738122
Make sure you don't mess up with 32bit and 64bit ODBC drivers. Task Scheduler might want to use 64bit executables.
0
 

Author Comment

by:branuda
ID: 39738144
we must use the 32 bit version to connect to pervasive.
0
 
LVL 71

Expert Comment

by:Qlemo
ID: 39738161
Than make sure you call 32bit tools inside of the cmd file, or call cmd.exe from the SysWoW64 folder (instead of system32) in your task, e.g. with
  %WinDir%\SysWoW64\cmd.exe /c c:\Scripts\KillTheDb.cmd
0
 
LVL 18

Expert Comment

by:mirtheil
ID: 39738169
What are the exact ODBC errors being thrown?
0
 

Author Comment

by:branuda
ID: 39738343
For EVERY table (so I have just written [tablename] in this example):

Fri 12/20/2013 10:00:24 PM  (Error)  -
                                   at System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)
   at System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)
   at System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection, OdbcConnectionString connectionOptions)
   at System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)
   at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
   at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   at System.Data.Odbc.OdbcConnection.Open()
   at [tablename].CreateSchema(String tablename, Table table, Int32 connectionID)
0
 
LVL 18

Expert Comment

by:mirtheil
ID: 39738413
Is there any exception listed in the error?  
Are you using ODBC to both read and write the data?  
Is the error occurring on the read or write portion?  
Did this work at one point and stop or has it never worked?
Does the error happen every time you run the scheduled task?
0
 

Author Comment

by:branuda
ID: 39738571
No exceptions.
Using ODBC to both read and write.
It looks like the error is on the read.
This did stop working but the customer claims that "nothing has changed".
This happens every time the task is run and NEVER when run from a command line.
0
 
LVL 18

Expert Comment

by:mirtheil
ID: 39738610
At this point, I would suggest adding some debugging code to it.  Something is causing the HandleError and you need to figure out what it is.  Ideally, the debugging code would write to a log or event log and show the line(s) of code that cause or at least precede the error. It would also, hopefully, give you a better error with exception or error message that's being returned.
I've written apps (.NET and standard Win32) using the Pervasive ODBC driver (and Pervasive Managed Provider) that run as scheduled tasks without any problems so I know it's possible.
0
 
LVL 12

Expert Comment

by:Dave
ID: 39738927
If its server 2008 or later make sure you click the box which says "run with highest privileges"
0
 
LVL 35

Expert Comment

by:ste5an
ID: 39739017
Do you run the task under the default account or under this user account?
0
 
LVL 71

Expert Comment

by:Qlemo
ID: 39739019
You can also try whether the ODBC Trace shows something (useful).
Call %WinDir%\system32\odbcad32 and %WinDir%\SysWoW64\odbcad32 (ODBC Administrator)d 32 bit), open tab Tracing, set a different log file for both, and start logging. After executing the task, stop tracing.
This will show
a) which driver is used
b) if there is some exchange at all
c) details about the failing call
0
 

Accepted Solution

by:
branuda earned 0 total points
ID: 39812393
Thank you for all of your comments.  While helpful, the solution was something else entirely - apparently the task was being run on a different server and for whatever reason, this was not allowed.
0
 

Author Closing Comment

by:branuda
ID: 39826091
Changing servers that ran the task fixed the issue.
0

Featured Post

Moving data to the cloud? Find out if you’re ready

Before moving to the cloud, it is important to carefully define your db needs, plan for the migration & understand prod. environment. This wp explains how to define what you need from a cloud provider, plan for the migration & what putting a cloud solution into practice entails.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In this blog post, we’ll look at how using thread_statistics can cause high memory usage.
What we learned in Webroot's webinar on multi-vector protection.
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…

670 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question