georeference.org
Subscribe to this thread
Home - General / All posts - Problem with shared components in manifold enterprise server database
willc
9 post(s)
#29-Jun-09 14:55

After 2 successful months of using Manifold Enterprise (originally using 8.0.12 later updated to 8.0.13) with shared components on a Manifold Enterprise Server Database (MySQL 5.0.5), I ran into some major problems last week.

The slow downward spiral began went like this:

1) Another developer on my team had a drawing component checked out. I asked him to check it in so I could work on it, but his system said it was already checked in.

2) We attempted to re-sync the component by checking it out and then back in, but when trying to check it back in, got the following error: "Can't share component(s) on the Enterprise server."

3) Shortly after clicking the OK button, another error came up saying "Some components no longer available on the server. Remove them from the project?" - he clicked the CANCEL button. At this time a both the Drawing Component and a completely unrelated Map Component became unshared from his project. Interestingly, the components do still show up on the server's component list.

4) I went back to my computer to check my local .map file, and sure enough, the same error was waiting for me, resulting in the loss of a shared link to the same 2 components.

5) I tried to re-link the component from the database via 'file--link--component from server' , but got the unhelpful error message: "Unknown Error." We tried a number of things, including: linking and importing the components in a new file, and even attempted deleting the components from the server console. ... all resulted in "Unknown Error"

6) My colleague and i both updated to 8.0.13, and then things got even stranger. We were still unable to link to those original components. Plus now, we're unable to share any new components to the server... getting error: "Name already in use" (however, after looking at the database, the components DO actually upload, but are not shared, and they're unable to be linked to in the same manner as the original 2 that caused the problem.) ...... To make matters worse, anytime we check out and attempt to check back in a component in our project, we get the following error: "Can't share component(s) on the Enterprise server."

Thats about it for my crazy story. Any ideas? Has my enterprise server been corrupted by a single component or is this indicative of a more serious issue? I'm now terrified of corrupting or losing any more data.

thanks in advance,

-will

csb42 post(s)
#29-Jun-09 15:32

We are using MS SQL to store our Manifold Enterprise database. Every once and a while we have similar problem. To see the object that Manifold thinks are checked out run this on your SQL

code

 select * from mfd_root where mfd_user is not null

code

From the Manifold Help:

To force a rollback of a component in an Enterprise server:

1. Using a suitable tool, connect to the database containing the Enterprise server,

2. Open the mfd_root table,

3. In the mfd_name field, find the names of the components for which check out is to be undone. Each component will be one record.

4. For each such record, change the values of the mfd_user and mfd_user_info fields to either blank strings or NULLs.

5. Commit changes.

Very important: Make sure not to edit the system record by accident. This record has "system" in the mfd_type field.

KlausDE

4,165 post(s)
#29-Jun-09 15:38

This can happen after an unregular interruption of a connection and a reconnect that is not accepted as the same connection because dynamic ip has changed or I don't know why. Saw it once with a buggy script causing a reboot.

  1. Open a connection to the Enterprise DB in Database Console, not in Server Console.
  2. link table Mfd_root
  3. locate the 'corrupted' component in column [mfd_name]
  4. delete the strings in [mfd_user] and [mfd_user_info]
  5. focus cursor in another record
  6. don't touch any other value
  7. delete the linked table Mfd_root and try a shared connection again
  8. don't reveal this to people you don't trusted

    (Hi csb:-) )
willc
9 post(s)
#29-Jun-09 17:15

Excellent! Both methods above allow me to identify the offending record so far... but unfortunately, i am unable to edit the strings in the [mfd_user] or [mfd_user_info] fields. I assume (and hope) this is due to a permissions issue, which hopefully I can have resolved tomorrow morning when our server admin is back in the office.

I'll post again once i've gotten a little farther. Thanks again for the info. Good to know i'm not just going crazy.

-will

csb42 post(s)
#30-Jun-09 10:13

Obviously I don't know exactly how your network is setup but however Manifold connects to the database I believe Manifold is going to NEED full access to those tables and the Manifold Enterprise database.

willc
9 post(s)
#30-Jun-09 14:31

It turns out i already had full access to the database with admin privledges set. But i was still unable to make any changes tot he linked mfd_root table i brought into manifold (all fields grey'd out). Interestingly, i was able to connect to the database via MySQL Administrator tools and run an SQL query (as csb recommended) to isolate the offending record. I then ran an update query on the table to set the [mfd_user] and [mfd_user_info] fields to null. That worked fine.

However...we are still experiencing the same issues with check-ins on all components on the enterprise server. Even with new projects with new shared drawing/table components, we consistently get one of 2 errors...either: "Can't share component(s) on the Enterprise server.", followed by a few minutes of lag, then an eventual check-in...or "Name already in use", leaving a dead 'ghost' link on the server, and never actually checking it back in. Attempting to Undo a Checkout throws "Unkown Error"

I'm beginning to wonder if our manifold enterprise server has an eternally flipped bit somewhere that requires a fresh rebuild? I'm a little scared of using the shared service on projects now, and getting close to just linking to a spatial database, but havent fully given up hope on the enterprise server...yet.

willc
9 post(s)
#30-Jun-09 16:06

OK...problem (knock on wood) solved. I went back into the MySQL Admin tool and ran a drop table query to remove the offending component from both the mfd.root as well as it's related data entries. That seems to have 'unstuck' our problem. There is no more lag, and all components now behave nicely for the checkin process. no more errors and no more dead links.

Thanks for the help. I'd have been totally lost without a launching point.

firsttube

1,011 post(s)
#30-Jun-09 16:43

I might suggest moving away from the server console and to the database console. Convert all your drawings to wkb geometry and store them in a database. It supports multi-user concurrent editing so no checking in and out.


The information you have is not what you want. The information you want is not what you need. The information you need is not what you can get. The information you can obtain costs more that you want to pay.

1 msec Copyright (C) 2007-2008 Manifold.net. All rights reserved.