# REST-API You have requested a syntehtic service

**URL:** <https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802>\
**Category:** Programmierung\
**Created:** [16. Mai 2017 um 19:16 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802 "2017-05-16T19:16:15Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![ABC9](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@ABC9](https://forum.shopware.com/u/ABC9)\
**Post date:** [16. Mai 2017 um 19:16 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802/1 "2017-05-16T19:16:15Z")

</div>

Hi,

ich habe mal folgendes ausprobiert

> <https://github.com/shopware/shopware/blob/5.2/engine/Shopware/Components/Api/Resource/Resource.php#L589>

und festgestellt, das wenn ich das ausführe folgende Exception geworfen wird:

[Symfony\Component\DependencyInjection\Exception\RuntimeException]  
You have requested a synthetic service (“db\_connection”). The DIC does not know how to construct this service.

Vermutlich liegt es daran, das es mit einem einfachen load(‘db\_connection’) nicht funktioniert. Jedenfalls läuft bei mir der Speicher voll sobald ich die Resourcen der API verwende.

Ich verwende Shopware 5.2.9

---

<div class="post-metadata">

**Author:** ![Thomas](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/thomas/32/8167_2.png) [@Thomas](https://forum.shopware.com/u/Thomas)\
**Post date:** [16. Mai 2017 um 19:20 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802/2 "2017-05-16T19:20:11Z")

</div>

Was hast Du den genau vor? Wenn Du z.B. auf die API Resource zugreifen möchtest geht das wie folgt:&nbsp;

```
\Shopware\Components\Api\Manager::getResource('Article');

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![ABC9](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@ABC9](https://forum.shopware.com/u/ABC9)\
**Post date:** [16. Mai 2017 um 19:26 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802/3 "2017-05-16T19:26:16Z")

</div>

&nbsp;20000 Artikel per $articleResource-\>updateByNumber(‚xyz‘, $restArticleData); aktualisieren.  
Wenn ich den Aufruf&nbsp;auskommentiere dann läuft mein Arbeitsspeicher nicht voll. Verwende ich den Aufruf da oben dann läuft mein Speicher alle 30 Sekunden um 2 MB bis Exception memory exceeded. Batch kann ich nicht verwenden da ich jeden Artikel sofort speichern soll bzw komplett. Ich habe bei der shopware/Resource.php gesehen das Shopware „model“ und „db\_connection“ reseted wenn es zu einem Fehler kommt. Jetzt dachte ich mir könnte ich das mal verwenden aber das geht net, da der service db\_connection noch die konfiguration benötig und die wird nicht mit übergeben.

&nbsp;Shopware()-\>Models()-\>getConnection()-\>getConfiguration()-\>setSQLLogger(null);

bringt nichts der Speicher läuft trotzdem voll. Achja in restArticleData steht immer ein Artikel mit Kategoriezuweisung (array) und einem Bild (array) und Download (array).

---

<div class="post-metadata">

**Author:** ![Thomas](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/thomas/32/8167_2.png) [@Thomas](https://forum.shopware.com/u/Thomas)\
**Post date:** [16. Mai 2017 um 19:37 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802/4 "2017-05-16T19:37:21Z")

</div>

Die Methode&nbsp;resetEntityManager() wird eigentlich nur aufgerufen wenn es ein Fehler beim Update/Erstellen gab. In der Regel wird das durch fehlerhafte Daten erzeugt.

Am besten um den updateByNumber() block ein try catch machen und schauen bei welchem Artikel die Resource “aussteigt”.&nbsp;

---

<div class="post-metadata">

**Author:** ![ABC9](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@ABC9](https://forum.shopware.com/u/ABC9)\
**Post date:** [16. Mai 2017 um 19:40 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802/5 "2017-05-16T19:40:24Z")

</div>

Ja aber die resetEntityManager() Funktion funktioniert ja nicht mal also kann ich mir daran kein Beispiel nehmen. Bei der Funktion hätte eher Container-\>set stehen müssen statt load().Das heißt kommt es irgendwan zu einem Fehler in der REST-API steigt sie sowieso aus. Das hat noch nie funktioniert.&nbsp;

Ich habe eventuell den Titel falsch gewählt mein Problem ist das der Speicher voll läuft sobald ich die updateByNumber() Funktion aufrufe. Also dachte ich mir ich könnte die Funktion resetEntityManager() kopieren und nach jedem Aufruf aufrufen das geht aber nicht.

Der try catch Block fängt keine Exception ab. Der Speicher steigt ungefähr&nbsp;alle 30 Sekunden um 2 MB setzte ich einen Limit kommt die Exception das mein Speicher voll gelaufen ist. Jetzt möchte ich aber nicht das der Arbeitsspeicher voll läuft es muss ja irgendwo einen memory leak geben und die einzige Lösung ist es den EntityManager irgendwie zu reseten oder etwas ähnliches.

---

<div class="post-metadata">

**Author:** ![Thomas](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/thomas/32/8167_2.png) [@Thomas](https://forum.shopware.com/u/Thomas)\
**Post date:** [16. Mai 2017 um 19:52 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802/6 "2017-05-16T19:52:18Z")

</div>

Warum fragst Du nach Hilfe wenn Du es anscheinend eh besser weißt?&nbsp;“_Ergibt keinen Sinn mehr da die Antwort des Autors bearbeitet wurde_”&nbsp;

Den try/catch Block habe ich auch eingesetzt und bin dann dadurch auf fehlerhafte Artikel Daten gestoßen die man im vorfeld filtern oder ausortieren musste.&nbsp;[scd16-unit-testing/ArticleImporter.php at master · teiling88/scd16-unit-testing · GitHub](https://github.com/teiling88/scd16-unit-testing/blob/master/src/TEiling/Scd16/Importer/ArticleImporter.php#L71)

Nebenher - der Teilauszug der da im Repo ist funktioniert übrigens mit 32.000 Stammartikel + Varianten **ohne&nbsp;** MemoryLeak. In der Regel sind die Fehler&nbsp;doch in den gelieferten Daten&nbsp;zu suchen.&nbsp;

---

<div class="post-metadata">

**Author:** ![ABC9](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@ABC9](https://forum.shopware.com/u/ABC9)\
**Post date:** [16. Mai 2017 um 19:58 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802/7 "2017-05-16T19:58:41Z")

</div>

hmm ich habe aber bereits ein try catch um den Aufruf und der schreibt nichts in den Log d.h. es wird keine Exception geworfen. Wie gesagt ich bekomme nur irgendwan ein Arbeitsspeicher problem. Ich werde&nbsp;noch einmal bei mir nachprüfen was genau an die Funktion übergeben wird. Ich weiß es nicht besser das habe ich niemals gesagt. Das war net gerade sehr höflich.

---

<div class="post-metadata">

**Author:** ![Thomas](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/thomas/32/8167_2.png) [@Thomas](https://forum.shopware.com/u/Thomas)\
**Post date:** [16. Mai 2017 um 20:02 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802/8 "2017-05-16T20:02:47Z")

</div>

Ich weiß nicht ob es viel höflicher ist die eigenen Texte nachträglich zu editieren… Sorry - ich bin raus.

---

<div class="post-metadata">

**Author:** ![ABC9](https://avatars.discourse-cdn.com/v4/letter/a/d9b06d/32.png) [@ABC9](https://forum.shopware.com/u/ABC9)\
**Post date:** [16. Mai 2017 um 20:05 UTC](https://forum.shopware.com/t/rest-api-you-have-requested-a-syntehtic-service/45802/9 "2017-05-16T20:05:53Z")

</div>

Tut mir leid das ich erst vorhin gemerkt habe das man mich falsch verstehen konnte.&nbsp;

Habe den Fehler gefunden unzwar lag es an der aktivierten&nbsp;ShyimProfiler Erweiterung. Jetzt läuft mein Arbeitsspeicher nicht mehr voll.
