Re-establishing TestStand Database Connections: Does anyone know exactly how TestStand maintains its database connnection?By Bryan
TestStand Version(s) Used: 2010 thru 2016
Windows (7 & 10)
Database: MS SQL Server (v?)
Note: The database connection I'm referring to is what's configured in "Configure > Result Processing", (or equivalent location in older versions).
Based on some issues we've been having with nearly all of our TestStand-based production testers, I'm assuming that TestStand opens the configured database connection when the sequence is run, and maintains that same connection for all subsequent UUTs tested until the sequence is stopped/terminated/aborted. However, I'm not sure of this and would like someone to either confirm or correct this assumption.
The problem we're having is that: Nearly all of our TestStand-based production testers have intermittently been losing their database connections - returning an error (usually after the PASS/FAIL banner). I'm not sure if it's a TestStand issue or an issue with the database itself. The operator - Seeing and only caring about whether it passed or failed, often ignores the error message and soldiers on, mostly ignoring every error message that pops up. Testers at the next higher assembly that look for a passed record of the sub assemblies' serial number in the database will now fail their test because they can't find a passed record of the serial number.
We've tried communicating with the operators to either let us know when the error occurs, re-test the UUT, or restart TestStand (usually the option that works), but it's often forgotten or ignored.
The operators do not stop the test sequence when they go home for the evening/weekend/etc. so, TestStand is normally left waiting for them to enter the next serial number of the device to test. I'm assuming that their connection to the database is still opened during this time. If so, it's almost as though MS SQL has been configured to terminate idle connections to it, or if something happens with the SQL Server - the connection hasn't been properly closed or re-established, etc.
Our LabVIEW based testers don't appear to have this problem unless there really is an issue with the database server. The majority of these testers I believe open > write > close their database connections at the completion of a unit test.
I'm currently looking into writing my own routine to be called in the "Log to Database" callback which will open > write > close the database connection. But, I wanted to check if anyone more knowledgeable had any insight before I spend time doing something that may have an easy fix.
Thanks to the nice work of drjdpowell I was able to easily connect & work with PostgreSQL. Did have to use the 32bit included dll's though.
Now when I try to install & run it on a Win10 IoT machine the dll's are not found and throwing errors. Sorry no screenshot at the moment.
The 64bit of PostgreSQL is installed on both machines & works.
The exe of course works just fine on the dev machine.
Does anyone have any ideas? I'm at a loss at the moment & need to get this running.
This is not specifically LabVIEW related:
How do you organize important posts you read and want to save for the time of need?
For example, I want to save an interesting post from Lavag/NI Forums or any other LV blog.
This post might contain VIs and I would like to tag it in a way that will let me find it when it becomes relevant.
I would like such a post to be saved locally like an RSS so that I'll get the new comments and won't depend on the site to keep the links alive.
I see the veterans here keep track of all the new posts and even offer solutions by giving links to some old posts without having to search for them sometimes.
Do I miss something? How do you organize it all? I hope to hear of some cool little RSS app that will let me search through the tagged vis and posts stored on my computer and not about some bookmark manager.
Thanks in advance.
I'm trying to insert some NULL values in a datetime field.
In the example, the DATA_INSERIMENTO field has a non empty value and it works correctly but DATA_INTERVENTO doesn't accept NULL.
If I use an empty string instead of null, the VI run without any errors but it fill the database field with a 1900-01-01 and it's not what I want.
If I use the DB Tools NULL VI it gives me another type of error, maybe 'cause I'm connecting a variant to a cluster of string.
If i use a Variant to Data VI for the NULL value it returns an empty string so not the result I need.
If use the string you see in the label at the bottom of my diagram in SQL Server manager, it works correctly.
How can I obtain the same result with labview?
I've been using LabVIEW for a few years for automation testing tasks and until recently have been saving my data to "[DescriptorA]\[DescriptorB]\[test_info].csv" files. A few months ago, a friend turned me on to the concept of relational databases, I've been really impressed by their response times and am reworking my code and following the examples with the Database Connectivity Toolkit (DCT) to use "[test_info].mdb" with my provider being a Microsoft jet oldb database.
However, I'm beginning to see the limitations of the DCT namely:
No support for auto-incrementing primary keys No support for foreign keys Difficult to program stored procedures and I'm sure a few more that I don't know yet.
Now I've switched over to architecting my database in MySQL Workbench. Suffice to say I'm a bit out of my depth and have a few questions that I haven't seen covered in tutorials
Using Microsoft jet oldb I made a connection string "Data Source= C:\[Database]\[databasename.mdb]" in a .UDL file. However, the examples I've seen for connecting to MySQL databases use IP addresses and ports.
Is a MySQL database still a file? If not, how do I put it on my networked server \\[servername\Database\[file]? If so, what file extensions exist for databases and what is the implication of each extension? I know of .mdb, but are there others I could/should be using (such as .csv's vs .txt's) My peers, who have more work experience than me but no experience with databases, espouse a 2GB limit on all files (I believe from the era of FAT16 disks). My current oldb database is about 200mB in size so 2GB will likely never happen, but I'm curious:
Do file size limits still apply to database files? If so, how does one have the giant databases that support major websites? Questions (LabVIEW Specific):
I can install my [MainTestingVi.exe], which accesses the jet oldb database, on a Windows 10 computer that is fresh out of the box. When I switch over to having a MySQL database, are there any additional tools that I'll need to install as well?