Strange Error Updating Extensions - MSSQL driver

I am on commandBox 4.7 seems to have the version 4 mssql driver. I need a newer version to run this application. Recieving ““Variant” data type not supported” which seems to be solved by updated mssql driver to version 8 and above.

Tried to update via the Server > Extensions and got this… could it be a permissions issue?

Any recommendations on user permissions and commandBox / Lucee ?

It’s a Lucee-related. You might want to ask Lucee community at https://dev.lucee.org/

If you can log in to the Lucee Admin - you don’t have a permissions issue.
Try uninstalling, then reinstalling.

You could also try putting the extension details into the server.xml, directly, as a second option.
But as @Ancient_Programmer states, you might get more mileage from the Lucee Forums. A LOT of us on there also use CommandBox. so a Lucee issue via a CommandBox install/usage is entirely fine/appropriate.

Best of luck!
Gavin

I updated Lucee via the Web Server Admin ( not sure if this was the way I was supposed to do it ).

After doing so the MSSQL driver update worked.

But then my websites refused to load ( the admin pages still worked )

After that I deleted my home folder, restarted.

And now I am back on the old version of Lucee when I start the server.

Which I can’t anymore because of this issue…It does not appear I have any consoles open. Message is saying otherwise.

Firstly, your screenshot doesn’t back up what you’re saying. You said you tried t update Lucee, yet the error you posted shows you installing or updating an extension!

CommandBox 4.7 is pretty old and using an older version of Lucee. The error message looks like you are hitting this but which was fixed 3 years ago:
https://luceeserver.atlassian.net/browse/LDEV-1723

To be clear, that error has nothing at all to do with permissions so I’m not sure if you think changing permissions will fix the error or if you are just asking a second, unrelated question.

You can do that, but I don’t really recommend it. When using CommandBox to start a server, you just tell CommandBox what version of Lucee you want, and it will get it for you.

server start cfengine=lucee@5.3.9

If you want a different version, start the server with a new version or update the same info in the server.json and restart.

What exactly do you mean when you say “refused to load”? Like, you asked it politely, and it crossed its arms, shook its head, shouted “NO!”? :joy: You’ve got to be MUCH more specific when you say things like that. What URL did you hit? What exactly did you see in your browser? What status code came back, if any? What error message displayed in the browser, if any? What errors showed in the console log, if any?

server log --follow

I’m not sure what you mean when you say your “home” folder? Your web root? Your server home? Your CommandBox home? Your User home?

Are you saying you didn’t expect to be on the old version? You haven’t really stated what version of CommandBox you’re on or what command you used to start the server. So it’s really not even possible to guess what you’ve done.

The issue is as stated-- something in Windows is locking the jar files so they can’t be deleted. I would open task manager, show processes from all users, and look for any running java processes. Just having a Windows Explorer open with that folder can be enough for Windows to lock it. I am a little confused and worried why starting a server is trying to upgrade CommandBox! That would only happen if you downloaded a new box.exe which you didn’t mention anything about. Again, you’ve got to slow down and do one thing at a time and be very specific when you tell us what you’ve done and in what order. It sounds like you’ve tried a bunch of stuff and we have no idea what you’ve done.

A restart solved the above problem. Now things appear to be working… wow what a headache Lucee has been for me. Of course now that I have the new version of Lucee, the updated driver… I’m getting a white page with no code output or error message. A white page with zero content… at what is supposed to be the login page of the application. ( which was working under the old version of Lucee ).

Kind of difficult to debug a blank page.

I can run a new test server though… a simple index.cfm in a new directory, so I guess I will have to trawl through this legacy application to find out what is causing it.

Yep. There have been some actual Lucee bugs that produced white pages, but not for a long time. Can you confirm what exact version of Lucee you are running?

The first thing to do is to put something like

dump( cgi )
abort;

at the top of your Application.cfc and see if it renders. If so, the issue is somewhere inside your app. one of the most common issues people hit in Lucee 5.3+ is a new performance behavior that strictly enforces the output=false in CFCs. This means a dump/abort from inside a CFC or method that doesn’t allow output, whcih will display on your screen in Adobe CF and Lucee 5.2 and before will NOT work in the newest versions of Lucee.

I’d put the following in your Application.cfc as well just to rule that out:

this.bufferOutput = true;

Thanks. The bufferOutput worked. The application is almost working.

the last hurdle I have seems to have to do with resultset returned by stored procedures. Seems the application might not be recognizing resultsets as a query.

For example:

<cfprocresult resultset="2" name="Arguments.Scope.CompanySetup" />

The app is telling me the above in NOT a query. I checked the actual data and it appears to be returning a recordset.

Offhand do you know of a setting anywhere in Lucee that would affect something like this?

Hi @dannyF
What is the returntype of the function you are calling?
Is it specifically set to query? or ANY?

What do you get if you dump the variable that you expect to be a query?

Just shooting from the hip:
(I can’t remember the version number it changed in - sorry)
In mySQL, the driver is no longer tolerant of SELECT and GROUP BY mismatches.
If you have something in the GROUP BY it MUST be in the SELECT.

I have found this issue also effects ORM queries.

Perhaps you’re not getting a query returned - because the query is actually failing / behaving differently as a result of the DB driver update?

Gavin

The error actually seem to stem from the way custom tags were being called.

This app was developed in an older version of CF. I think also, there is some configuration that I am not privy to.

So the app referenced the custom tags like so…

<ui:table query="Request.Widget.CompanySetup">

Which actually only passed in a string… which was being rejected by the application as it was looking for a query.

When I changed the code to …

<ui:table query=“#Request.Widget.CompanySetup#”>

It worked.

But the larger issue is that I am still unsure HOW application used to work. What possible setting or configuration was made in order to process Request.Widget.CompanySetup ( ie: the code above ) pointing to the actual query variable as opposed to a string as there does not seem be anything coded to translate it from a string to a full on variable.

Yeah, that’s a strange one. No telling why older versions of CF didn’t treat that like a string, but it certainly seems like it’s high time to refactor those to be correct.