JDBC Adapter Receiver dynamic connection string
Hi,
I'm developing an IDOC-JDBC scenario and I need to send data to one of the different databases depending of one field in the IDOC. All databases are identical, the only difference is the server where they are. We are using SAP PI 7.0. If you need more information, please report.
Best Regards,
Alfredo Lagunar.
Hi Alfredo,
no bother to think about dynamic varialble substitution or something like that, which might be possible, might be not. In this case, you just configure several receiver channels and serveral receiver business services. By using the conditioning(XPATH) winthin receiver determination you can route your XML message to the JDBC database with different IP addresses.
Actually SAP is using the same solution in one of its standard implementation: ELSTER (Electronic Tax Claim, in german Elektronische Steuererklärung). The only difference is the receivers are HTTP endpoint, not JDBC. But the idea is the identical: they are all having different IPs, like your databases.
Hope it inspires.
Regards,
Chen
Similar Messages
-
How to create dynamic connection string with variables using ssis.
Hello,
Can anyone let me know on how to create dynamic connection string with variables using ssis?
Any help would be appreciated.Hi vinay9738,
According to your description, you want to connect multiple database from multiple servers using dynamic connection.
If in this case, we can create a Table in our local database (whatever DB we want) and load all the connection strings. We can use Execute SQL Task to query all the connection strings and store the result-set in a variable of object type in SSIS package.
Then use ForEach Loop container to shred the content of the object variable and iterate through each of the connection strings. And then Place an Execute SQL task inside ForEach Loop container with the SQL statements we have to run in all the DB instances.
For more details, please refer to the following blog:
http://sql-developers.blogspot.kr/2010/07/dynamic-database-connection-using-ssis.html
If there are any other questions, please feel free to let me know.
Regards,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
Report model dynamic connection string
hi
I'm trying to build a report model,which has to connect to different database
For ex:
I've 10 different customers, and i need to connect the selected customer database,
Any thoughts how to proceed in this
Thanks
ChezhianHi Chezhian,
As per my understanding, I would try the two methods to achieve your requirement: create one report model which contains those databases or create 10 report model, the data source can connect to the corresponding model based on the user. In Reporting Services,
a report model can only map to a database. So the first method doesn’t work. If we want to connect to a report model, we should browse to a report server or SharePoint site and select a published model. We don’t need a connection string to use a report model
as a data source. So the second method still doesn’t work.
To work around the issue, I think we can create 10 report model, each report model corresponding each user’s database and named the user name. Then set Item-Level Permissions of each report model based on the user on report manager. Each user can only see
his own report model on the report server.
Or we can create a data source with dynamic connection string, the blog below is for your reference:
http://blogs.msdn.com/b/bimusings/archive/2006/07/20/673051.aspx
References:
Report Model Connection (SSRS)
Setting Item-Level Permissions on a Report Server
Hope this helps.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
JDBC Adapter - Established database connection failed
Hi Guys,
we have installed the JDBC Adapter based on the How To Guide and we checked after the installation the Libaries :Cluster --> Server --> Libraries --> com.sap.aii.af.jmsproviderlib and the box Box "JARs Contained" was filled.
So in my point of view we have done everything right during the installation.
Now the developer tested theJDBC Adapter and he comes back with following Error:
Attempt to establish database connection failed with SQL error com.sap.aii.adapter.jdbc.sql.DriverManagementException: Cannot establish connection to URL "jdbc:microsoft:sqlserver://xxx.x.xx.xxx:1433; databaseName=CZZ03;":ClassNot FoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
Do you have any ideas?
Regards
MarkusHello Markus,
To install JDBC driver follow the how to guide.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-how-to-guides/how%20to%20install%20and%20configure%20external%20drivers%20for%20jdbc%20and%20jms%20adapters.pdf
Configuration of JDBC Adapter for SQL Server
JDBC Driver = com.microsoft.jdbc.sqlserver.SQLServerDriver
Connection = jdbc:microsoft:sqlserver://hostname:<port>;DatabaseName=<DBName>
UserID and Password.
If the connection is not working find the correct port number.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40b92770-db81-2a10-8e91-f747188d8033
JDBC- X I - R/3 Scenario
/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30
Thanks,
Satya Kumar
Reward Points If it is Useful.. -
JDBC-Adapter-Receiver Calling Stored Procedure with Input-Typ Record
Hallo,
I´ m trying calling a stored-procedure with two input-parameter; one of typ record (oracle) and one of type tabel of records. Is this possible (I think there are only types like string, integer etc. possible)? When not is there another possibility to work with that type?
Thanks in advance,
FrankHi Frank,
I think stored procedures will not take Array of Records as a Input. If you want to make a loop funtionality etc then JDBC adapter will work accordingly. You need to just call the stored procedure from the JDBC adapter. It will work for the array of records(multiple occurences).
Receiver JDBC Procedures.
/people/siva.maranani/blog/2005/05/21/jdbc-stored-procedures
Alternative option is you can make use of Java Proxy and from there you can call stored procedure ..I think it is possible.. not tried.
Hope this helps
Regards,
Moorthy -
I am trying to use the relatively new Code First from Database with the newest EF (6.x) and on an Oracle database (11g, but I have installed the newest ODTwithODAC). First of all, it works fine as long as the connection string is inside the App.Config file. But when I try to build it dynamically in the C# code (or rather, statically at the moment) it fails. I have it working with a dynamically built connection string when doing Model from Database though, so I'm at a loss right now.
First, I have created a second constructor for the context class that takes a string and does base(connectionString). Then I build the connection string via
OracleConnectionStringBuilder oracleBuilder = new OracleConnectionStringBuilder();
oracleBuilder.DataSource = "TEST.BLA.COM";
oracleBuilder.UserID = "ABC";
oracleBuilder.Password = "abc";
oracleBuilder.PersistSecurityInfo = true;
string connection = oracleBuilder.ToStrin();
Now trying to open an EntityConnection by giving to it this provider-specific connection string (or even the static one from the App.Config) doesn't work; I get "keyword not supported: user id"). Trying it by creating a context and giving this connection string doesn't work either. I'm pretty sure that this is because I didn't specify the provider to use; after all, it should use the Oracle.ManagedDataAccess.Client provider and not an SQL Server based one.
I then tried to get around this by using an EntityConnectionStringBuilder on top and specifying the provider keyword there, but then I get "keyword not supported: provider" when using it in the context constructor, and "the 'metadata' keyword is always required" when using it with the EntityConnection constructor.
As I said above: I bet it's the provider that I have to specify somehow, but I don't know how. The code that does work is the following:
using (var context = new Model())
context.Database.Connection.Open();
context.Database.Connection.Close();
When I read context.Database.Connection.ConnectionString, it is exactly the provider-specific connection string I created above, but I don't know where to specify the provider again. Do you know of any way to do this? Certainly there must be one.
PS: I have also posted this question on http://stackoverflow.com/questions/27979454/ef-code-first-from-database-with-managed-oracle-data-access-dynamic-connection because it is quite urgent and I'd like to use Code First from Database. Otherwise I'd have to go "back" to using Model from Database again, which is not ideal because we have updatable views where the .edmx-file has to be edited after every reload of the model, while with Code First from DB inserting into the view automatically works.I am trying to use the relatively new Code First from Database with the newest EF (6.x) and on an Oracle database (11g, but I have installed the newest ODTwithODAC). First of all, it works fine as long as the connection string is inside the App.Config file. But when I try to build it dynamically in the C# code (or rather, statically at the moment) it fails. I have it working with a dynamically built connection string when doing Model from Database though, so I'm at a loss right now.
First, I have created a second constructor for the context class that takes a string and does base(connectionString). Then I build the connection string via
OracleConnectionStringBuilder oracleBuilder = new OracleConnectionStringBuilder();
oracleBuilder.DataSource = "TEST.BLA.COM";
oracleBuilder.UserID = "ABC";
oracleBuilder.Password = "abc";
oracleBuilder.PersistSecurityInfo = true;
string connection = oracleBuilder.ToStrin();
Now trying to open an EntityConnection by giving to it this provider-specific connection string (or even the static one from the App.Config) doesn't work; I get "keyword not supported: user id"). Trying it by creating a context and giving this connection string doesn't work either. I'm pretty sure that this is because I didn't specify the provider to use; after all, it should use the Oracle.ManagedDataAccess.Client provider and not an SQL Server based one.
I then tried to get around this by using an EntityConnectionStringBuilder on top and specifying the provider keyword there, but then I get "keyword not supported: provider" when using it in the context constructor, and "the 'metadata' keyword is always required" when using it with the EntityConnection constructor.
As I said above: I bet it's the provider that I have to specify somehow, but I don't know how. The code that does work is the following:
using (var context = new Model())
context.Database.Connection.Open();
context.Database.Connection.Close();
When I read context.Database.Connection.ConnectionString, it is exactly the provider-specific connection string I created above, but I don't know where to specify the provider again. Do you know of any way to do this? Certainly there must be one.
PS: I have also posted this question on http://stackoverflow.com/questions/27979454/ef-code-first-from-database-with-managed-oracle-data-access-dynamic-connection because it is quite urgent and I'd like to use Code First from Database. Otherwise I'd have to go "back" to using Model from Database again, which is not ideal because we have updatable views where the .edmx-file has to be edited after every reload of the model, while with Code First from DB inserting into the view automatically works. -
Dynamic connection string not working in SSIS package 2008R2
I am using SSIS package for Import data from excel sheet to SQL DB. In the configuration file I'm using following variables.
Name scope DataType Value
DBName package String DB_Master
Password package String xx
UserName package String sa
ServerName package String xxx.xxx.x.xx
SqlConnectionString package String DataSource=xxx.xxx.x.xxx;UserID=sa;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Initial Catalog=DB_Master;Password=xx
Right click OLEDB ConnectionManager then click properties window below values assign
ConnectionString - Initial Catalog=DB_Master;DataSource=xxx.xxx.x.xxx;UserID=sa;Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;
DelayValidation - True
Expressions -ConnectionString - @[User::SqlConnectionString]
In SqlConnectionString variable properties window below values assign
EvaluateAsExpression -True
Expression -"DataSource=" + @[User::ServerName] + ";UserID=" + @[User::UserName] + ";Provider=SQLNCLI10.1;Integrated Security=SSPI;Auto Translate=False;Initial Catalog=" + @[User::DBName] + ";Password=" + @[User::Password]
After deploy the package file I change the DBName in SqlConnectionString DB_Master to Master but package execute the files in DB_Master.
and also if i give invalid ServerName like 198.152.1 but package executed successfully.
Please tell me where i made mistake. what's goes wrong...?
I just use variable like below link
https://anothersqlgeek.wordpress.com/2013/03/28/ssis-dynamic-connections-part-1/comment-page-1/#comment-48First see whether you've some other configurations also set inside the package for the same properties? ie direct configuration for connection manager properties.
Secondly see if its executed from a job and you're overriding the values through the job properties.
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
Synchronous JDBC adapter(receiver side) with stored procedure
Hi experts,
Can some database processing logic be included in receiver JDBC (synchronous) adapter...to put it simply
I have synchronous JDBC adapter in the receiver side..Using this JDBC adapter I want to get some response back from the table..
The requirement is not a simple fetch from the table..It involves some processing in the database side which I guess will be done by stored procedure..After this database processing , this output will be picked up by the JDBC adapter and will send to PI.
How can this be achived ..Any Blog..
Thanks
AyanYes u can use stroed procedure and send back the response,
refer this link for stored procedure structure.
http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
chirag. -
How to create dynamic Connection String in SSIS Package???
Hi
I created OLEDB Source Connnection String for that Package,
i need Create OLEDB Destination Connection String Dynamically,
Same server name,but i need to add DW at the end of the Database
ex:
Source database name is Demo,
Destination database should come DemoDW.
i need to create Dynamic Destination Connection String..
any possible to Create
Thanks in advance
Pandiyan
pandiyanHi Pandiyanpvp,
According to your description, the OLEDB Destination Connection String should be dynamically based on the OLEDB Source Connection String. They are all the same, except adding “DW” at the end of the Database of OLEDB Source Connection String in OLEDB Destination
Connection.
To achieve this requirement, we can create a variable with the Database name of OLEDB Source Connection String, then use expression to control the OLEDB Source and OLEDB Destination Connection Strings. For more details, please refer to the following steps:
Create a variable named Source with the Database name of OLEDB Source Connection String as value.
Click the OLEDB Source Connection Manager to navigate to the Properties window.
Click “…” next to Expressions to add a ConnectionString Property with the expression like below:
"Data Source=.;Initial Catalog="+@[User::Source] + ";Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;"
Click the OLEDB Destination Connection Manager to navigate to the Properties window.
Click “…” next to Expressions to add a ConnectionString Property with the expression like below:
"Data Source=.;Initial Catalog="+ @[User::Source] + "DB"+";Provider=SQLNCLI11.1;Integrated Security=SSPI;Auto Translate=False;"
If there are any other questions, please feel free to ask.
Thanks,
Katherine Xiong
Katherine Xiong
TechNet Community Support -
JDBC Adapter (Receiver)
Hi All,
Am using a scenario where in Receiver is "JDBC Adapter" , it should update my Acess.mdb file placed in the XI Server path
But after config i get below error :
Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: JDBC Adapter configuration not initialized: null
Any clue where it went wrong
Thanks in advance
sriniHave you deployed these drivers (msbase.jar, mssqlserver.jar, msutil.jar) and provider.xml file in Visual admin corectly??
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10
You can check in the following path if the drivers are installed correctly:
usrsap<SID>DVEBMGS<Instance Number>j2eeclusterserver0 inextcom.sap.aii.af.jmsproviderlib -
Hello all
This is Charitha Sharma
i want to know how to and where to store connection string in my applications
we are using multi user environment model system ( network model ) 10 clients connects to server
tech is VB2005 AND ORACLE
i dont want to embedd username and password and host name in connection string
please guide me in real time application developement which one is better one
DSN OR WRITING IT IN ANY FILE OR ......
IF DSN HOW TO ACCESS ITS VALUES IN VB?
OR
WHICH WAY I CAN COMPLETE THIS TASK
THANK YOUFirst see whether you've some other configurations also set inside the package for the same properties? ie direct configuration for connection manager properties.
Secondly see if its executed from a job and you're overriding the values through the job properties.
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
Power View with dynamic connection string, but server-side
We'd like to evaluate using Power View to provide exploratory BI over data output from HDInsight, onto Azure Storage. We need to let users select which segments of data to load but through a web-ui (not Excel on the desktop). We expect to have a standard
data model, it's just the segments of data that will be dynamically selected by the user. Basically the Power Query will need to be updated dynamically, but on the server-side. Is this scenario currently possible?Any suggestions for SFiorito?
Thanks!
Ed Price, Power BI & SQL Server Customer Program Manager (Blog,
Small Basic,
Wiki Ninjas,
Wiki)
Answer an interesting question?
Create a wiki article about it! -
Database connection string dynamic
Hello everybody,
My application should do some tests that user choses.
For each test type I should save the database in a file with different name, something like : Report_YYYY_MM_DD_Test_x, without stopping the execution of the application.
My problem is that i cannont rename the database after Teststand wrote in it. I must stop first the application and then I can rename it.
I tried to build dynamic connection strings and to prepare the database before Teststand write it. But I saw that after the first acces, despite of new connection string, Testand write further in the database described in the first connection string. Also seems that the handle to database once established, will be released at the end of test. I could close the connection to the DB but i don't know if it is possible.
for any ideea how to handle this situation i would be gratefulHi Harleen Kaur Chadha,
I understand your requirement is access 5-6 database on same server using one JDB receiver channel. I think, it is possible. SAP Help [Link|http://help.sap.com/saphelp_nwpi711/helpdata/en/44/7c24a75cf83672e10000000a114a6b/frameset.htm ]. In receiver JDB channel select Message Protocol : u201CNative SQL Stringu201D. Then you have make sure that the payload coming to this JDBC receiver channel should look like this
INSERT INTO DatabaseName : tableName
(column-name1, column-name2, column-name3)
VALUES(u2018column-value1u2019, u2018column-value2u2019, u2018column-value3u2019)
But, the mapping program you are using now, should generate the String (shown above). And SAP says this protocol is primarily for test purposes.
FYI. If you select Message Protocol: "XML SQL Format", finally it would be converted to string (shown above) will be sent to database.
Regards,
Raghu_Vamsee -
I connect to Oracle Database using JDBC Adapter and the adapter is configured to poll every 300 secs.
The Oracle Database goes down over the week end for maintenance. By the time I come Monday morning the Adapters are down and I have to reactivate them from ID. I assumed that the Retry interval will take care of the issued.
Is there any way to stop this from happening?
Regards
MichaelHi Michael,
Like mentioned by Amol, <b>Disconnect from Database After Processing Each Message</b> will do the trick.
Every time your JDBC adapter receives a message for processing , it will connect to the database the details provided in the Adapter Configuration.
Normally, if you do not select this option, your JDBC adapter will connect to the Database once when it is getting activated and will use the same connection for further processing. But, if the Database resets this connection , there is no way the JDBC adapter isaware of this, and the next time a message is processed by it, it will get disconnected.
So, if this DB disconnection is going to happen frequently, you need to have the option Disconnect from Database After Processing Each Message selected.
Regards,
Bhavesh -
Strange behavior of JDBC Adapter
Hello everybody!
I found a pretty strange behaviour of JDBC Receiver Adapter during problems with network (big thanks to our Basis). According to the status in Adapter Engine, the message wasn't processed. In the database I can see these inserts. However, there are more lines in the XML than lines in the database. So, how it is possible that adapter commits only part of inserts. Logs and settings see below.
My XML includes a SQL_DML statement and a few INSERT statements, each contains many inserts.
It looks like that:
<?xml version="1.0" ?>
<MyMessage>
<statement>
<table1 action="SQL_DML">
<access>here I delete old values</access>
</table1>
</statement>
<statement>
<table2 action="INSERT">
<access>some data</access>
</table2>
</statement>
<statement>
<table3 action="INSERT">
<access>some data</access>
</table3>
</statement>
</MyMessage>
Part of adapter log is here:
Information
Message successfully put into the queue
Information
The message was successfully retrieved from the receive queue
Information
Message status set to DLNG
Information
Delivering to channel: Adapter_Name
Information
MP: processing local module localejbs/CallSapAdapter
Information
Receiver JDBC adapter: processing started; QoS required: ExactlyOnce
Information
JDBC Adapter Receiver Channel Adapter_Name: Processing started; party / service BS
Information
Database request processed successfully
Error
MP: exception caught with message Ack handling failed: creation of messageFactory failed: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Connection JDBC_http://sap.com/xi/XI/System is currently not started.
Error
Exception caught by adapter framework: Ack handling failed: creation of messageFactory failed: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Connection JDBC_http://sap.com/xi/XI/System is currently not started.
Error
Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.lang.Exception: Ack handling failed: creation of messageFactory failed: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Connection JDBC_http://sap.com/xi/XI/System is currently not started.
Information
Message status set to WAIT
Information
The asynchronous message was successfully scheduled to be delivered at ...
Information
Message status set to TBDL
Information
Retrying to deliver message to the application. Retry: 1
Information
The message was successfully retrieved from the receive queue
Information
Message status set to DLNG
Information
Delivering to channel: Adapter_Name
Information
MP: processing local module localejbs/CallSapAdapter
Information
Receiver JDBC adapter: processing started; QoS required: ExactlyOnce
Information
JDBC Adapter Receiver Channel Adapter_Name: Processing started; party / service BS
Error
Unable to execute statement for table or stored procedure. 'Table' (Structure 'statement') due to com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
Error
JDBC message processing failed; reason Error processing request in sax parser: Error when executing statement for table/stored proc. 'Table' (structure 'statement'): com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
Error
MP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'Table' (structure 'statement'): com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
Error
Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'Table' (structure 'statement'): com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
Error
Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'Table' (structure 'statement'): com.microsoft.sqlserver.jdbc.SQLServerException: Violation of PRIMARY KEY constraint 'fields'. Cannot insert duplicate key in object 'Table'. The duplicate key value is (field values).
Adapter settings:
Maximum concurrency: 20
Persistence: Local
Conflict Resolution: Redo
Advanced Mode: On
Number of Retries of Database Transaction on SQL Error: 0
Transaction Isolation Level: serializableDear All,
Follow the steps below to resolve the "Connection JDBC_http://sap.com/xi/XI/System is currently not started." issue:
1. Log in to NWA
2. Navigate to Operations -> Systems -> Start & Stop
3. Click on Java Services tab
4. Search the service Service "XPI Adapter: JDBC"
5. Select the service XPI Adapter: JDBC and click on Restart button
With the restart of JDBC Service in NWA, the channels should start working properly
Regards,
Shreyansh
Maybe you are looking for
-
How do I create folders on my email account?
When I open my email account on the Internet it shows all my emails in their respected folders that I created and organized. Unfortunately, when I try to open my account on the desktop email app they provide for us (the postage stamp with the bird) i
-
Error at Creat asinstance When installing oracle forms 11g on linux
Hello all experts!!!, i am installing oracle weblogic forms 11g on linux platform and i am getting error at Create as instance step. components selected :-- forms ,reports,form builder report builder enterprise manager OS Platform :-- Oracle Enterpri
-
NAVS not getting picked up on a PO
Hello, Whilst trying to create a PO; we've observed that condition type NAVS is not getting defaulted. We've checked that the condition records have been maintained/plant & material master indicator has been maintained. Anyone of you has had this ex
-
Cannon Resolve Symbol, DiveLog Tute Example...
I have followed the Tute "DiveLog" and cannot get it to compile... I have created the other .Java required and placed the in the same dir... Divers.java etc... All files are in c:\java\DiveLog\ FILES ARE HERE. I have set the path ver.. can complir "H
-
ITunes is not showing the album artwork in the Artist view
This is only happening for one artist in my iTunes library, but the artwork used to be displayed!! Does anyone have an idea on how I can get it back?? I have previously tried deleting & then adding the artist back into the iTunes library!!