Print Story The very definition of frustration
Working life
By codemonkey uk (Thu May 01, 2008 at 07:36:33 AM EST) (all tags)
A tale of "programming" woe.


I say programming in quotation marks because it doesn't really feel like programming.

Let me explain the situation.

I am developing a piece of client side software that communicates with a server.  The server is both physically remote, and is not running software that I developed.  All my communication with is is done via tools and closed source client side binary APIs.

In between my application and the API is a large middleware/framework layer that I do, fortunately, have source code for.

But let me take a step back.  To access at all the server I need to have an application profile uploaded to it, that contains, amongst other things, information about what services my application supports.  This profile is created with a GUI tool that is largely undocumented.  Updating the profile on live server with the tool has a "24 hour turn around", though, fortunately, it is in practice usually live in under an hour.

Now, in order to create a connection/session on the server I have to pass in flags that match the subset of functionality set up via the application profile.

Setting the session flags is done via the middleware layer, and is largely undocumented.

If you get something mismatched, the API spits out an error message that says:


Continuing transaction while processing HTTP headers failed (err = 0xHEXVALUE)
Couldn't continue processing HTTP headers, err = 0xHEXVALUE

The hex value is undocumented, but digging around in header files I see it defined and commented as (paraphrased) "//UR DOIN IT WRON".

Requesting support from the middleware supplier, who is in a different time zone to me, results in a back and forth that goes something like this:


Me: Hi, I've done FOO, BAR, etc, in detail, and I get "ERROR MESSAGE", any idea what causes this?
Vendor: That error message is what you see if you've done it wrong.
Me: Hi, thanks, I was wondering if you could explain how I can find out what exactly it is I've done wrong.
Vendor: Hi, yeah, you've set up your flags wrong, you need to set them up right.  Look at our example app.
Me: Hi, I've done it like the example app X and it still doesn't work.
Vendor:  Oh no, not that example app.  That one doesn't work with the service provider you use.  Look at example app Y.
Me: Hi, example app Y is using an older version of the middleware, and has totally different codepaths and settings to the middleware version we are on.  Can you confirm the middleware version we are using actually work with the our service provider?
Vendor: Yes it works.  Have you done [thing I already told them I'd done in the first email]?

And so on, and so forth.

/slashwrist


Update [2008-5-1 12:12:37 by codemonkey uk]:

I found a solution on the user newsgroup for the service provider, in a thread titled "APIFunction() poor error output, does not help to debug the issue..." in which a single customer described the problem then a few days later replied to himself with a solution, and a suggestion to fix the tool, which apparently doesn't add a required section when creating a new profile. The solution? You have to manually add that section to the profile by right clicking on the root note and selecting "add matchmaking". the middleware vendor still hasn't got back to me...

< I should eat a pony | Sparring. >
The very definition of frustration | 10 comments (10 topical, 0 hidden) | Trackback
Bin the middleware by Breaker (4.00 / 2) #1 Thu May 01, 2008 at 07:47:55 AM EST
And re-write it by hand coded assembler.




Middleware by codemonkey uk (4.00 / 1) #2 Thu May 01, 2008 at 07:51:06 AM EST
Does much much more than handle this server connection.  It's several million lines of code which we are deeply invested in.  Mores the pity.

--- Thad ---
developer of ... ?
[ Parent ]

Look on the bright side by wiredog (4.00 / 2) #3 Thu May 01, 2008 at 08:02:16 AM EST
You're no longer in the soul sucking game designer world, and thus probably live in the same time zone as the wife and kids.

Earth First!
(We can strip mine the rest later.)



Dumpster dive! by ObviousTroll (4.00 / 1) #4 Thu May 01, 2008 at 08:16:28 AM EST
Did it "used to work" or is this a completely new install?

If you build sample app Y will it work in your environment?


--
Has anybody seen my clue? I know I had it when I came in here.


Ye olde... by ana (4.00 / 1) #5 Thu May 01, 2008 at 08:30:29 AM EST
"If I had a nose, I would thumb it at you, if I had a thumb" error message.

"And this ... is a piece of Synergy." --Kellnerin


FFS, REC, cut him some slack by Rogerborg (4.00 / 3) #6 Thu May 01, 2008 at 08:40:29 AM EST
It's not a root cause 17!

-
Metus amatores matrum compescit, non clementia.


I'll set my calendar by ucblockhead (2.00 / 0) #7 Thu May 01, 2008 at 11:33:15 AM EST
I expect a frustrated post in about a week that details how Vendor finally admits that the functionality hasn't actually been completed on the server.
----
ウセーバラケダ


see update by codemonkey uk (2.00 / 0) #8 Thu May 01, 2008 at 12:14:04 PM EST
:D

--- Thad ---
developer of ... ?
[ Parent ]

just wait by dev trash (4.00 / 1) #9 Thu May 01, 2008 at 06:46:29 PM EST
Til the vendor finds that posting and tries to sue everyone for haxxoring

--
Click


identity protection by codemonkey uk (2.00 / 0) #10 Fri May 02, 2008 at 05:07:13 AM EST
I think I've been vague enough to be pretty safe on that account! :P Given the number of projects we have, and the number of different service providers and middleware vendors we use, knowing where I work or what project I'm on even isn't enough to identify the vendor.  You could, in theory, identify the service provider if you are also a customer, but then you'd be tied by the same NDAs as me, so all you'd be able to go is sit there with a knowing smile.

--- Thad ---
developer of ... ?
[ Parent ]

The very definition of frustration | 10 comments (10 topical, 0 hidden) | Trackback