I have an application which uses the OCI 7 API. This application is successfully deployed on a variety of configurations like
WS2003/Oracle9 and WS2008 R2/Oracle12 (r1). I am now trying to deploy the app on WS2012 R2 but I am facing a frustrating issue where the application crashes with an illegal access somewhere in oranls12.dll. This makes think that it has something to do with the locale and/or system variables. I have checked that the NLS_LANG system variable is set as the same the database uses which is AMERICAN_AMERICA.WE8MSWIN1252.
I have tried using the binary which I know works on WS2008, and I have also compiled it on WS2012. It still crashes. Does anyone know what is wrong, or have any pointers on how to debug this properly?
Any details needed I will provide.
To answer the comments below, the app uses the OCI 7 API, which is still provided with the newer drivers. The app itself is compiled against OCI 12. The database running on the server is Oracle 12.1.0.1.
Related
As a .NET Desktop developer, I have a lot of experience working with various databases that are already up and running; but I'm not a DBA. I'm currently working at a company where I am ther only software guy here to build them software from scratch -- their previous enterprise-level solution was an Access database with macros and a couple forms built it. So, I basically have no one else to go to.
With that preface, how the heck do I get a database -- ANY DATABASE!!! -- added to my VS solution? I've been beating my head against this for almost 6 hours and have made zero headway. At this point, I'm ready to say, "Screw MS databases!" and start looking at MySQL or PostgreSQL or something.
The desktop application I'm developing has to work whether there is an internet connection or not, so I need a local database that installs with ClickOnce. From what I've found so far:
SQL Server [Express] 2016+ requires Windows 8 or later (a non-starter since 95% our customers are still running Windows 7)
SQL Server Compact is being deprecated and won't work past VS2013
I think LocalDB is what replaces Compact in 2016+ (?)
Okay, so I started with this tutorial:https: //learn.microsoft.com/en-us/visualstudio/data-tools/create-a-sql-database-by-using-a-designer However, trying to add a "Service-based Database" just gives me this error once: "The 'DBProviderFactories' section can only appear once per config file." I try again and get this error repeatedly: "Unable to find DbProviderFactory for type System.Data.SqlClientConnection" I've Googled both errors and all the answers that I've been able to find pertain to VS2010 or earlier and their solutions are either not applicable or don't work.
Next, I tried this tutorial: https://msdn.microsoft.com/en-us/library/aa983322.aspx I've tried adding new data connections through the "Server Explorer" panel. I don't see "[*] Compact" as an option. When I try "Microsoft SQL Server Database File", I just get the error: Unable to find the requested .Net Framework Data Provider. It may not be installed."
I've even tried adding data sources through the "Data Sources" panel; that doesn't work either.
I've installed the "Data storage and development" addon from the Visual Studio Installer, several versions of SQL Server 2014, SQL Server Compact 4.0, and maybe a few other executables from Microsoft's website.
Nothing works.
Help...
I think I just found it!
Evidently, there are "machine.config" files on your computer. Search for them all, and make sure that there is only a single tag for "DbProviderFactories". I can add a database object now. Hopefully, this puts me in business...
https://social.msdn.microsoft.com/Forums/vstudio/en-US/7b4f353b-77fd-427c-976b-5968abc88c13/visual-studio-2010-unable-to-find-the-requested-net-framework-data-provider-for-sql?forum=vseditor
If what you are saying is that you are writing a browser based application - then one would migrate the tables to SQL Server (Express) or even MySQL - it really doesn't matter. Then write a new web app. The existing Access app would serve as a model for seeing features & screen layout but is otherwise not portable.
On the other hand, if you are re-writing a Windows application; then the decision is whether the payload requires a server solution or if one can stay at the PC level. If the payload is suitable for PC then a re-write using either Visual Studio or Access again.
Access is a front end db - the tables in the back end whether they be stored in SQL Server or an Access file are entirely passive. All the processing is done by the user's PC. If the payload allows that then this is the lowest cost re-write option.
If you've outgrown a PC level payload - then one must develop a back end database feature set with a more passive front end.
I have installed a fresh instance of AX 2012 R3 on my system. When I try to start the service on my machine i get the following error:
Note: When I try to start the service through Local system it works. But I want to start it through the account NT Authority/Network Service. Any suggestions?
Another anomaly is that when i try to install DIXF it gives me the following error: "Verify that you have enough privileges to start the service"
It sounds like you've narrowed the issue down yourself. Do you need to have it running as the network service account? Run it as your user or another user with access to SQL.
I'd say that it's a permissions issue to SQL and/or file permissions on the machine the AOS resides on.
https://technet.microsoft.com/en-us/library/dd362055.aspx
Debugging a crashing AOS server is not a simple task.
As I see from your Event Log you are running build number 6.3.164.0 which is the RTM build of 2012 R3. Many hotfixes have been released since and there is a good chance your problem goes away with just installing the latest kernel build. See Overview of Microsoft Dynamics AX build numbers for links to more recent builds.
Running a newer kernel with an older application build is supported, but since it's a fresh instance I'd update the application too.
If you would have a go at debugging this yourself you could try to get a memory dump to analyze with windbg. Refer to this article So your AOS crashed, is hanging, or you just want to see what it's doing .
Unfortunately my results with that approach have been mixed. Unfortunately we don't have access to all debugging symbols we need, and in this case, since it crashes immediately on startup I don't know what to expect.
Your third and last option is to open a support ticket with Microsoft and provide them with memory dumps, but their suggestion will be to update to a more recent build anyway.
I'm working currently on a windows form application which uses a Database, and i want to use MS SqlServer, now i need to know how to make it local based..
In other words : after publishing the app and install it on another device, it'll crash because of the database not found and the connection string also not right.
I've find on many threads a way to copy the md5 file from SqlServer directory to the project files and change the connection string to local, but it didn't work properly as it is still crashing on other devices, so what should i do in this case ?
Also is there any software i should install it on other devices in order to use sqlServer commands (like .Net Framework..etc), and also what is SqlServer Express ?, is it the thing i'm looking for ?
Please explain in details, Thanks in Advance.
I am using SQL Server Compact 4.0, so far so good
http://en.wikipedia.org/wiki/SQL_Server_Compact
Basically you need to create DB file and carry it over to destination machine with some additional assemblies.
You can download it from here:
http://www.microsoft.com/en-us/download/details.aspx?id=17876
There is also extension for Visual studio that allows you to work with it using designers. With it you can use Entity Framework which.
http://sqlcetoolbox.codeplex.com/
An attempted deployment from (localhost) to (remote server) yielded the Error 27123 which, appears to be a credentials-related issue. After spending several hours the resolution appears to be one of assigning local-to-the-remote server Windows credentials that are used to launch DTEexec.exe. I am using VS2012 Ultimate locally with SQL Server 2014 Developer version and remote SQL version 2012 SP1. However, my attempts have failed so far.
I would VERY much like to be able to deploy to the remote server inside of VS2012, including creating folders, etc but am still at a loss as to the missing piece needed.
We do not have Active Directory set up as the remote is on the Amazon S3 cloud bit other than that is pretty much a plain vanilla setup. I also noted some folks suggested a Kerberos-based response but before I ask our network guru to proceed I'd like at least to get confirmation.
I AM able to manually FTP, install and run packages when remoted in but that stinks for my contractor who I would also like to be able to have me out of his way. s
All found online materials have not yet yielded the one last piece. I suspect my ignorance rather than the lack of a real solution and would appreciate any guidance.
Thanks in advance.
I have a VB based VS2005 appl developed using Access DB a few years back on Windows XP and it has been working fine until moving to Windows 7. I re-built the solution by changing to the x64 platform also at the sametime modified the Access DB a bit resulting in a new Access DB file to be included in the solution. When I debug in VS2005, I have the new version of DB residing in my project\x86\Release folder and successfully access this new version.
Problem is that once I create the solution for deployment, the deployed application kept on opening the OLD version of the access database (mdb) file. I was not able to find where is it opening the old version of DB from even after I removed the mdb from the installed folder. I have been a lot of digging and research on web and not able to find out how to solve this problem.
Can someone please help to tell me how I can have my deployed appl to open the new version of DB ?
Thanks in advance
It sounds like you are not allowing for virtualisation - do you know about this? For security reasons after XP (Vista onwards) Microsoft doesn't allow writing to the Programs folder and if it encounters an application attempting to do this makes a copy of the files trying to be written to (in your case an Access database) and places it somewhere (can't remember exactly where at the moment) hidden from casual user.
For example, if you look at the database on your Win 7 machine in the same location at your .exe file I should think you will find it is unused - and since it was installed on the machine the OS has been redirecting requests to read/write to your database to the virtualised copy it created for you.
So, first of all find this other copy (sorry I'm currently on a mac and can't remember the location) and see if that contains data that your application is creating. Then try substituting your new database (making a a copy of your old one first of course) and seeing if your application is reading/writing to it OK.
Then it is a matter of handling replacement of databases during application installation.
However, you should give serious consideration to placing your database in a location which is not virtualised!